概述
HTML DOM 允许 JavaScript 改变 HTML 元素的内容。
原生JS获取HTML DOM元素的8种方法
- 通过ID获取(getElementById)
document.getElementById('id');
用法
- 上下文必须是document。
- 必须传参数,参数是string类型,是获取元素的id。
- 返回值只获取到一个元素,没有找到返回null。
- 通过name属性(getElementsByName)
document.getElementsByName('name');
用法
- 上下文必须是document。
- 内容必须传参数,参数是是获取元素的name属性。
- 返回值是一个类数组,没有找到返回空数组。
- 通过标签名(getElementsByTagName)
var obj = document.getElementsByTagName('div');
for(let i = 0; i<obj.length; i++){
obj[i].onclick = function(a){
console.log(i)
}
}
document.getElementsByTagName('p');
var oDiv = document.getElementById('divId');
oDiv.getElementsByTagName('p');
用法
- 上下文可以是document,也可以是一个元素,注意这个元素一定要存在。
- 参数是是获取元素的标签名属性,不区分大小写。
- 返回值是一个类数组,没有找到返回空数组
- 获取的结果是一个类数组。
- 上下文不必须是document了,因为ElementsByTagName方法在不仅在Document类的原型上也在Element类的原型上,所以document和元素都可以使用这个方法
- 通过类名(getElementsByClassName)
var obj1 = document.getElementsByClassName('animated');
用法(和getElementsByTagName类似):
- 上下文可以是document,也可以是一个元素。
- 参数是元素的类名。
- 返回值是一个类数组,没有找到返回空数组。
- 获取的结果是一个类数组。
- 通过选择器获取一个元素(querySelector)
document.querySelector('.animated')
用法
- 上下文可以是document,也可以是一个元素。
- 参数是选择器,如:”div . className”。
- 返回值只获取到第一个元素。
- 通过选择器获取一组元素(querySelectorAll)
document.querySelector('.animated');
用法
- 上下文可以是document,也可以是一个元素。
- 参数是选择器,如:”div .className”。
- 返回值是一个类数组。
- 获取html的方法(document.documentElement)
document.documentElement是专门获取html这个标签的。 - 获取body的方法(document.body)
document.body是专门获取body这个标签的。
他们的继承关系:
HTMLDivElement > HTMLElement > Element > Node > EventTarget
HTMLDocument > Document > Node > EventTarget