DOM 元素选取的 API

DOM

DOM 全称是Document Object Model,即文档对象模型。

DOM的目的是为了操作文档而产生的API

DOM获取元素的方式

document 对象

每个载入浏览器的HTML文档都会成为document对象。document对象包含了文档的基本信息,我们可以通过JavaScript对HTML页面中的所有元素进行访问、修改。

Element

除了document对象,在DOM中最常用的就是Element对象了,Element对象表示HTML元素。

Element 对象可以拥有类型为元素节点、文本节点、注释节点的子节点,DOM提供了一系列的方法可以进行元素的增、删、改、查操作

查询元素

  1. getElementById()
    getElementById方法返回匹配指定ID属性的元素节点。如果没有发现匹配的节点,则返回null。这也是获取一个元素最快的方法

    image

  2. getElementsByClassName()
    getElementsByClassName方法返回一个类似数组的对象(HTMLCollection类型的对象),包括了所有class名字符合指定条件的元素(搜索范围包括本身),元素的变化实时反映在返回结果中。这个方法不仅可以在document对象上调用,也可以在任何元素节点上调用。

    DOM 元素选取的 API_第1张图片
    image

    getElementsByClassName方法的参数,可以是多个空格分隔的class名字,返回同时具有这些节点的元素。
    即:document.getElementsByClassName('red test');

  3. getElementsByTagName()
    getElementsByTagName方法返回所有指定标签的元素(搜索范围包括本身)。返回值是一个HTMLCollection对象,也就是说,搜索结果是一个动态集合,任何元素的变化都会实时反映在返回的集合中。这个方法不仅可以在document对象上调用,也可以在任何元素节点上调用。

    DOM 元素选取的 API_第2张图片
    image

    多个相同元素也可以设置下标进行选择
    image

    上面代码返回当前文档的所有p元素节点。--注意getElementsByTagName方法会将参数转为小写后,再进行搜索。

  4. getElementsByName()
    getElementsByName方法用于选择拥有name属性的HTML元素,比如form、img、frame、embed和object,返回一个NodeList格式的对象,不会实时反映元素的变化。

// 假定有一个表单是
var forms = document.getElementsByName("x"); forms[0].tagName // "FORM"

注意,在IE浏览器使用这个方法,会将没有name属性、但有同名id属性的元素也返回,所以name和id属性最好设为不一样的值

  1. querySelector()
    querySelector方法返回匹配指定的CSS选择器的元素节点。如果有多个节点满足匹配条件,则返回第一个匹配的节点。如果没有发现匹配的节点,则返回null。

可以完成getElementByIdgetElementsByTagName的工作

image

6 .querySelectorAll()
querySelectorAll方法返回匹配指定的CSS选择器的所有节点,返回的是NodeList类型的对象。NodeList对象不是动态集合,所以元素节点的变化无法实时反映在返回结果中。
str = document.querySelectorAll(selectors);

querySelectorAll方法的参数,可以是逗号分隔的多个CSS选择器,返回所有匹配其中一个选择器的元素。

var matches = document.querySelectorAll("div.note, div.alert");

上面代码返回class属性是note或alert的div元素

你可能感兴趣的:(DOM 元素选取的 API)