小编典典

如何遍历页面上的所有 DOM 元素?

all

我正在尝试遍历页面上的所有元素,因此我想检查此页面上存在的每个元素是否有一个特殊的类。

那么,我怎么说我要检查每个元素?


阅读 93

收藏
2022-06-30

共1个答案

小编典典

您可以传递一个*togetElementsByTagName()以便它返回页面中的所有元素:

var all = document.getElementsByTagName("*");

for (var i=0, max=all.length; i < max; i++) {
     // Do something with the element here
}

请注意querySelectorAll(),如果可用(IE9+,IE8 中的
CSS),您可以使用它来查找具有特定类的元素。

if (document.querySelectorAll)
    var clsElements = document.querySelectorAll(".mySpeshalClass");
else
    // loop through all elements instead

这肯定会加快现代浏览器的速度。


浏览器现在支持NodeList 上的 foreach。这意味着您可以直接循环元素,而不是编写自己的 for 循环。

document.querySelectorAll('*').forEach(function(node) {
    // Do whatever you want with the node object.
});

性能说明 -
尽最大努力使用特定选择器来确定要查找的范围。通用选择器可以根据页面的复杂性返回许多节点。此外,请考虑在您不关心孩子时document.body.querySelectorAll使用。document.querySelectorAll``<head>

2022-06-30