如何将所有选定元素迭代到数组中?
任务是将所有选定的 HTML 元素添加到一个数组中并遍历该数组。为此,第一步是选择所有需要的元素。有几种方法可以做到这一点。
var myElement = document.getElementById("element-id");
var myElements = document.getElementsByTagName("div");
var myElements = document.getElementsByClassName( "element-class");
var myElements = document.querySelectorAll("div.class-name");
第二步涉及遍历数组。做这件事有很多种方法:
array = [ a, b, c, d, e ];
for (index = 0; index < array.length; index++) {
console.log(array[index]);
}
index = 0;
array = [ a, b, c, d, e ];
while (index < array.length) {
console.log(array[index]);
index++;
}
index = 0;
array = [ a, b, c, d, e ];
array.forEach(myFunction);
function myFunction(item, index) {
console.log(item);
}
方法:
首先使用querySelectorAll
选择器获取所有元素。然后,使用forEach()
和cloneNode()
方法迭代元素。
示例 1:
在这种方法中,从第一个容器中选择所有div
元素,将它们添加到第二个容器中。
Demo
GeeksforGeeks
Element 1
Element 2
Element 3
输出:
在点击按钮之前:
点击按钮后:
附加说明:
querySelectorAll() 不是 JavaScript 方法,它是一个允许您访问 DOM 元素的浏览器 API。此方法返回节点列表而不是数组。 NodeList 和 Array 之间的区别在于 NodeList 是一种与语言无关的访问 DOM 元素的方式,而 Array 是一个 JavaScript 对象,可用于包含内容集合。
要将 NodeList 转换为数组:
var divsArr = Array.prototype.slice.call(divs);