在我的实验中,我使用了三种方法来返回一个数组中的每个HTML元素:
elementsArray.forEach(function(elem) {})
[].forEach(elementsArray, function(elem) {})
Array.prototype.forEach.call(elementsArray, function(elem) {})
在我的HTML中,我有以下元素:
<section id="example">
<div></div>
<div></div>
<div></div>
</section>
第一个例子:
var query = document.querySelector.bind(document);
query('#example').children.forEach(function(elem) {
console.log(elem);
})
未捕获的类型错误:query(...).children.forEach不是函数
第二个例子:
var query = document.querySelector.bind(document);
[].forEach(query('#example').children, function(elem) {
console.log(elem);
})
未捕获的类型错误:#<HTMLCollection> 不是一个函数。
第三个例子:
var query = document.querySelector.bind(document);
Array.prototype.forEach.call(query('#example').children, function(elem) {
console.log(elem)
})
我的问题是,这三个div在返回DOM元素方面有何不同?什么时候应该使用每个元素?
querySelectorAll('#example> *')
查询#example
的所有直接子元素。 - Omri Luzon