JS获取DOM元素的方法
- 通过ID获取(getElementById)
id具有唯一性,获取到的就是页面中的那个 id 为 box 的 div 标签
如果页面中的id重复了,那么这个方法默认只获得第一个元素
如果没有获取到,返回的结果为null
<body>
<div id="box"></div>
<script>
var box = document.getElementById('box');
console.log(box) ;// <div></div>
</script>
</body>
- 通过name属性(getElementsByName)
通过元素的name属性的获取一组元素,这个方法与getElementById类似,但是它查询的是元素的name属性,而不是id属性
getElementById是element单数(ID属性为唯一值),
getElementsByName是elements复数(name属性可以重复)。
所以ByName返回的是数组类型,ById返回的是唯一值
<body>
<div name="boxname"></div>
<script>
var box = document.getElementsByName('boxname');
console.log(box); // <div></div>
</script>
</body>
- 通过标签名(getElementsByTagName)
因为页面中可能有多个元素的 标签 名称一样,所以获取到的是一组元素,哪怕真的只有一个这个标签名,那么也是获取一组元素,只不过这一组中只有一个 DOM 元素而已
<body>
<div></div>
<script>
var box = document.getElementsByTagName('div');
console.log(box); // [<div></div>]
console.log(box[0]) ;// <div></div>
</script>
</body>
- 通过类名(getElementsByClassName)
页面中可能有多个元素的 class 名称一样,所以获取到的是一组元素,是一个长得和数组一样的数据结构,但是不是数组,是伪数组
这个一组数据也是按照索引排列的,所以我们想要准确的拿到这个 div,需要用索引来获取
<body>
<div calss="box"></div>
<script>
var box = document.getElementsByClassName('box');
console.log(box); // [<div></div>]
console.log(box[0]); // <div></div>
</script>
</body>
- 通过选择器获取一个元素(querySelector)
按照我们写 css 的时候的选择器来获取,这个方法只能获取到一个元素,并且是页面中第一个满足条件的元素
console.log(document.querySelector('div')); // 获取页面中的第一个 div 元素
console.log(docuemnt.querySelector('.box')); // 获取页面中第一个有 box 类名的元素
console.log(document.querySelector('#box')) ;// 获取页面中第一个 id 名为 box 的元素
- 通过选择器获取一组元素(querySelectorAll)
按照选择器的方式来获取元素,能获取到所有满足条件的元素,以一个伪数组的形式返回,也是需要用索引来获取到准确的每一个 DOM 元素
console.log(document.querySelectorAll('div')) ;// 获取页面中的所有的 div 元素
console.log(docuemnt.querySelectorAll('.box')); // 获取页面中所有有 box 类名的元素
- 获取html的方法(document.documentElement)
document.documentElement是专门获取html这个标签的 - 获取body的方法(document.body)
document.body是专门获取body这个标签的