我试图遍历页面上的所有元素,所以我想检查此页面上存在的每个元素是否有特殊类。
那么,我怎么说我要检查每个元素?
您可以将传递给*,getElementsByTagName()以便它将返回页面中的所有元素:
*
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),可以使用来查找具有特定类的元素。
querySelectorAll()
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内容,这也意味着您可以用作选择器来剪切所有内容。
'body *'
head