一尘不染

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

javascript

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

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


阅读 1005

收藏
2020-05-01

共1个答案

一尘不染

您可以将传递给*getElementsByTagName()以便它将返回页面中的所有元素:

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.
});

性能说明 -尽最大努力确定您要寻找的内容。通用选择器可以根据页面的复杂性返回很多节点。即使您确实需要浏览别人可能看到的'body *'所有head内容,这也意味着您可以用作选择器来剪切所有内容。

2020-05-01