DOM
DOM 全称是Document Object Model,即文档对象模型。
DOM的目的是为了操作文档而产生的API

DOM获取元素的方式
document 对象
每个载入浏览器的HTML文档都会成为document
对象。document
对象包含了文档的基本信息,我们可以通过JavaScript
对HTML页面中的所有元素进行访问、修改。
Element
除了document对象,在DOM中最常用的就是Element对象了,Element对象表示HTML元素。
Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点,DOM提供了一系列的方法可以进行元素的增、删、改、查操作
查询元素
-
getElementById()
getElementById
方法返回匹配指定ID属性的元素节点。如果没有发现匹配的节点,则返回null。这也是获取一个元素最快的方法
image
-
getElementsByClassName()
getElementsByClassName
方法返回一个类似数组的对象(HTMLCollection类型的对象),包括了所有class
名字符合指定条件的元素(搜索范围包括本身),元素的变化实时反映在返回结果中。这个方法不仅可以在document
对象上调用,也可以在任何元素节点上调用。
image
getElementsByClassName
方法的参数,可以是多个空格分隔的class名字,返回同时具有这些节点的元素。
即:document.getElementsByClassName('red test');
-
getElementsByTagName()
getElementsByTagName
方法返回所有指定标签的元素(搜索范围包括本身)。返回值是一个HTMLCollection对象,也就是说,搜索结果是一个动态集合,任何元素的变化都会实时反映在返回的集合中。这个方法不仅可以在document
对象上调用,也可以在任何元素节点上调用。
image
多个相同元素也可以设置下标进行选择
image
上面代码返回当前文档的所有p元素节点。--注意getElementsByTagName
方法会将参数转为小写后,再进行搜索。 -
getElementsByName()
getElementsByName
方法用于选择拥有name
属性的HTML元素,比如form、img、frame、embed和object
,返回一个NodeList
格式的对象,不会实时反映元素的变化。
// 假定有一个表单是<form name="x"></form>
var forms = document.getElementsByName("x");
forms[0].tagName // "FORM"
注意,在IE浏览器使用这个方法,会将没有name属性、但有同名id属性的元素也返回,所以name和id属性最好设为不一样的值
-
querySelector()
querySelector
方法返回匹配指定的CSS选择器的元素节点。如果有多个节点满足匹配条件,则返回第一个匹配的节点。如果没有发现匹配的节点,则返回null。
可以完成getElementById
和getElementsByTagName
的工作

6 .querySelectorAll()
querySelectorAll
方法返回匹配指定的CSS选择器的所有节点,返回的是NodeList类型的对象。NodeList对象不是动态集合,所以元素节点的变化无法实时反映在返回结果中。
str = document.querySelectorAll(selectors);
querySelectorAll
方法的参数,可以是逗号分隔的多个CSS选择器,返回所有匹配其中一个选择器的元素。
var matches = document.querySelectorAll("div.note, div.alert");
上面代码返回class属性是note或alert的div元素
网友评论