Вы можете передать a, *
чтобы getElementsByTagName()
он возвращал все элементы на странице:
var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
// Do something with the element here
}
Обратите внимание, что вы можете использовать querySelectorAll()
, если он доступен (IE9 +, CSS в IE8), чтобы просто находить элементы с определенным классом.
if (document.querySelectorAll)
var clsElements = document.querySelectorAll(".mySpeshalClass");
else
// loop through all elements instead
Это, безусловно, ускорит дело для современных браузеров.
Браузеры теперь поддерживают foreach на NodeList . Это означает, что вы можете напрямую зацикливать элементы вместо того, чтобы писать свой собственный цикл for.
document.querySelectorAll('*').forEach(function(node) {
// Do whatever you want with the node object.
});
Примечание по эффективности - сделайте все возможное, чтобы охватить то, что вы ищете. Универсальный селектор может вернуть много узлов в зависимости от сложности страницы. Даже если вам нужно просмотреть все, что кто-то может увидеть, это означает, что вы можете использовать 'body *'
в качестве селектора, чтобы вырезать весь head
контент.