我正在尝试遍历页面上的所有元素,因此我想检查此页面上存在的每个元素是否有一个特殊的类。
那么,我怎么说我要检查每个元素?
您可以传递一个*togetElementsByTagName()以便它返回页面中的所有元素:
*
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. });
性能说明 - 尽最大努力使用特定选择器来确定要查找的范围。通用选择器可以根据页面的复杂性返回许多节点。此外,请考虑在您不关心孩子时document.body.querySelectorAll使用。document.querySelectorAll``<head>
document.body.querySelectorAll
document.querySelectorAll``<head>