推荐答案
在 JavaScript 中,获取 DOM 元素有多种方法,常用的有以下几种:
通过
id获取元素:const element = document.getElementById('elementId');通过
class获取元素:const elements = document.getElementsByClassName('className');通过
标签名获取元素:const elements = document.getElementsByTagName('div');通过
CSS 选择器获取元素:const element = document.querySelector('.className'); const elements = document.querySelectorAll('.className');通过
name属性获取元素:const elements = document.getElementsByName('name');
本题详细解读
1. document.getElementById('elementId')
- 作用:通过元素的
id属性获取单个 DOM 元素。 - 返回值:返回一个
Element对象,如果找不到则返回null。 - 注意:
id是唯一的,因此该方法返回的是单个元素。
2. document.getElementsByClassName('className')
- 作用:通过元素的
class属性获取一组 DOM 元素。 - 返回值:返回一个
HTMLCollection对象,包含所有匹配的元素。如果没有匹配的元素,则返回空的HTMLCollection。 - 注意:
HTMLCollection是动态的,会随着 DOM 的变化而自动更新。
3. document.getElementsByTagName('tagName')
- 作用:通过元素的标签名获取一组 DOM 元素。
- 返回值:返回一个
HTMLCollection对象,包含所有匹配的元素。如果没有匹配的元素,则返回空的HTMLCollection。 - 注意:
HTMLCollection是动态的,会随着 DOM 的变化而自动更新。
4. document.querySelector('selector') 和 document.querySelectorAll('selector')
- 作用:通过 CSS 选择器获取元素。
querySelector返回匹配的第一个元素。querySelectorAll返回所有匹配的元素。
- 返回值:
querySelector返回一个Element对象,如果找不到则返回null。querySelectorAll返回一个NodeList对象,包含所有匹配的元素。如果没有匹配的元素,则返回空的NodeList。
- 注意:
NodeList是静态的,不会随着 DOM 的变化而自动更新。
5. document.getElementsByName('name')
- 作用:通过元素的
name属性获取一组 DOM 元素。 - 返回值:返回一个
NodeList对象,包含所有匹配的元素。如果没有匹配的元素,则返回空的NodeList。 - 注意:
NodeList是静态的,不会随着 DOM 的变化而自动更新。
总结
- 如果需要获取单个元素,推荐使用
getElementById或querySelector。 - 如果需要获取多个元素,推荐使用
getElementsByClassName、getElementsByTagName或querySelectorAll。 - 如果需要通过
name属性获取元素,可以使用getElementsByName。