详解JS获取HTML DOM元素的方法

192 阅读2分钟
1.通过ID获取(getElementById)
document.getElementById('id')

1.上下文为document。

2.必须传参数,参数是string类型,是获取元素的id。

3.返回值只获取到一个元素,没有找到返回null。

2.通过name属性(getElementsByName)

document.getElementsByName('name')

1.上下文为document。

2.必须传参数,参数是是获取元素的name属性。

3.返回值是一个类数组,没有找到返回空数组。

3.通过标签名(getElementsByTagName)

document.getElementsByTagName('span');
var oDiv = document.getElementById('divId');
oDiv.getElementsByTagName('span');

1.上下文为document或一个元素,如果为元素那么这个元素必须存在。

2.参数是获取元素的标签名属性,不区分大小写。

3.返回值是一个类数组,没有找到返回空数组。

4.通过类名(getElementsByClassName)

该方法与通过标签名类似

1.上下文可以是document,也可以是一个元素。

2.参数是元素的类名。

3.返回值是一个类数组,没有找到返回空数组。

5.获取html的方法(document.documentElement)

document.documentElement是专用于获取html标签。

6.获取body的方法(document.body)

document.body是专用于获取body这个标签。

7.通过选择器获取一个元素(querySelector)

document.querySelector('.animated')

1.上下文可以是document,也可以是一个元素。

2.参数是选择器,如:"div .className"。

3.返回值只获取到一个元素。

8.通过选择器获取一组元素(querySelectorAll)

document.querySelectorAll(".box");

方法同querySelector类似:

1.上下文可以是document,也可以是一个元素。

2.参数是选择器,如:"div .className"。

3.返回值是一个类数组。

注意:

当有多个class相同的元素时,使用querySelector()方法只能获取到第一个class为box的元素,而querySelectorAll()获取到了所有class为box的元素集合。

所有获取DOM对象的方法中,只有getElementById()和querySelector()这两个方法直接返回的DOM对象本身,可直接为其绑定事件。

getElementXXX类型的方法,除了通过Id获取元素,其他都返回一个集合,如果需要取到具体的DOM元素,需要加索引,如:document.getElementsByClassName(“box”)[0] =>获取class为box的所有元素中的第一个DOM元素。