JavaScript 脚本化文档之一(学习笔记)
来源:互联网 发布:十大悖论知乎 编辑:程序博客网 时间:2024/05/16 09:51
DOM 概述
每个Web浏览器窗口、标签页和框架由一个Window对象所表示。每个Window对象有一个document属性引用了Document对象。Document对象表示窗口的内容,Document对象并非独立的,它是一个巨大的API中的核心对象,叫做文档对象模型(Document Object Model,DOM),它代表和操作文档的内容。
文档对象模型(DOM)是表示和操作HTML和XML文档内容的基础API。
选取文档元素
大多数客户端JavaScript程序运行时总是在操作一个或多个文档元素。当程序启动时,可以使用全局变量document来引用Document对象。但是,为了操作文档中的元素,必须通过某种方式获得或选取这些引用文档元素的Element对象。
通过ID选取元素
任何HTML元素可以有一个id属性,在文档中改制必须唯一,即同一个文档中的两个元素不能有相同的ID。可以用Docuemnt对象的getElementById()方法选取一个基于唯一ID的元素
通过名字选取元素
HTML的name属性最初打算为表单元素分配名字,在表当数据提交到服务器时使用该属性的值。但是区别于id,name属性的值不是必须唯一,而且,和id不以言的是name属性只在少数HTML原书中有效,包括表单、表单元素、<iframe>、<img>元素。
基于name属性的值选取HTML元素,可以使用Document对象的getElementsByName()方法。
getElementsByName()定义在HTMLDocument类中,而不再Document类中,所以它只针对HTML文档可用,在XML文档中不可用。它返回一个NodeList对象,后者的行为类似一个包含若干Element对象的只读数组。在IE中,getElementsByName()也返回id属性匹配指定值的元素。为了兼容,应该小心谨慎,不要将同样的字符串同时用做名字和ID。
如果给定的名字只有一个元素,自动创建的文档属性对应的该值是元素本身。如果有多个元素,该文档属性的值是一个NodeList对象,它表现为一个包含这些元素的数组。
通过标签名选取元素
Document对象的getElementsByTagName()方法可用来选取指定类型(标签名)的所有HTML或XML元素。getElementsByTagName()放回一个NodeList对象。在NodeList中返回的元素按照在文档中的顺序排序的。所以可用如下代码选取文档中的第一个<p>元素:
var firstpara = document.getElementsByTagName("p")[0];
通过CSS类选取元素
在JavaScript中class是保留字,所以客户端JavaScript使用className属性来保存HTML的class属性值,class睡醒通常与CSS样式表一起使用,对某组内的所有元素应用相同的样式。HTML定义了getElementsByClassNme()方法,它基于其class属性值中的标识符来选取成组的文档元素。
在HTML文档和HTML元素上都可以调用getElementsByClassName(),它返回值是一个实时的NodeList对象,包含文档或元素所有匹配的后代节点。getElementsByClassName()只需要一个字符串参数,但是该字符串可以由多个空格隔开的标识符组成。只有当元素的class属性值包含所有指定的标识符时才匹配,但是标识符的顺序是无关紧要的。注意,class属性和getElementsByClassName()方法的类标识符之间都是用空格隔开的,而不是逗号。
通过CSS选择器选取元素
CSS选择器,它用来描述文档中的若干或多组元素。
与CSS3选择器的标准化一起的另一个称做“选择API”的W3C标准定义了获取匹配一个给定选择器的元素的JavaScript方法。该API的关键是Document方法querSeleectorAll()。它接受包含一个CSS选择器的字符串参数,返回一个表示文档匹配的所有元素的NodeList对象。querySelectorAll()返回的NodeList对象并不是实时的:它包含在调用时刻选择器所匹配的元素,但它并不更新后续文档的变化。如果没有匹配元素,返回一个空的NodeList对象。如果选择字符串非法,将抛出一个异常。
文档对象还定义了querySelector()方法。但它只是返回第一个匹配的元素(以文档顺序)或者如果没有匹配的元素就返回null.
document.all[]
在DOM标准化之前,IE4引入document.all[]集合来表示所有文档中的元素。document.all[]已经被标准的方法等所取代,现在已经被废弃不应该再使用了。
- JavaScript 脚本化文档之一(学习笔记)
- 客户端Javascript学习笔记-----脚本化文档
- 如何学习JAVASCRIPT脚本之一
- javaScript学习笔记之一
- JavaScript学习笔记之一
- JavaScript 脚本文档之二(学习笔记)
- 【js学习笔记-085】-----脚本化文档
- Javascript学习笔记之一简介
- JavaScript权威指南笔记7_脚本化文档
- 客户端Javascript学习笔记-----脚本化CSS
- 学习笔记之一shell脚本语法
- JavaScript学习笔记(DOM脚本)
- JavaScript常用脚本之一
- JavaScript学习笔记之一JS语言基础
- 客户端javascript之脚本化文档
- [javascript权威指南][阅读笔记]脚本化文档
- 学习笔记:javascript 文档对象(document)
- .Net学习笔记 - javascript脚本注册
- 互联网金融产品的收益率 互联网金融或再遇拦路虎
- Flex ANE介绍
- http请求之GET、POST对比分析
- BIOS 和 EC的关系
- Vmware7.1下安装ubuntu10.4教程
- JavaScript 脚本化文档之一(学习笔记)
- javascript中的发布/订阅模式
- Eclipse中添加文档注释快捷键
- 指尖上的电商---(7)Solr索引基本操作
- centos 6.4 修改ssh默认端口22为其他端口详尽安全教程(包含SELinux,iptables设置)
- wp8实现关键帧动画
- maven dependency scope
- js笔记 Date时间格式
- 数据库范式(1NF 2NF 3NF BCNF)