Você pode passar um *
para getElementsByTagName()
para que ele retorne todos os elementos em uma página:
var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
// Do something with the element here
}
Observe que você pode usar querySelectorAll()
, se estiver disponível (IE9 +, CSS no IE8), apenas encontrar elementos com uma classe específica.
if (document.querySelectorAll)
var clsElements = document.querySelectorAll(".mySpeshalClass");
else
// loop through all elements instead
Isso certamente agilizaria os navegadores modernos.
Os navegadores agora suportam foreach no NodeList . Isso significa que você pode fazer um loop direto dos elementos em vez de escrever seu próprio loop for.
document.querySelectorAll('*').forEach(function(node) {
// Do whatever you want with the node object.
});
Nota de desempenho - Faça o possível para definir o que você está procurando. Um seletor universal pode retornar muitos nós, dependendo da complexidade da página. Mesmo que você precise examinar tudo o que alguém vê, isso significa que você pode usar 'body *'
como seletor para cortar todo o head
conteúdo.