Puede pasar un *
a getElementsByTagName()
para que devuelva todos los elementos de una página:
var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
// Do something with the element here
}
Tenga en cuenta que podría usar querySelectorAll()
, si está disponible (IE9 +, CSS en IE8), solo para encontrar elementos con una clase en particular.
if (document.querySelectorAll)
var clsElements = document.querySelectorAll(".mySpeshalClass");
else
// loop through all elements instead
Esto sin duda aceleraría las cosas para los navegadores modernos.
Los navegadores ahora admiten foreach en NodeList . Esto significa que puede hacer un bucle directo de los elementos en lugar de escribir su propio bucle for.
document.querySelectorAll('*').forEach(function(node) {
// Do whatever you want with the node object.
});
Nota de rendimiento : haga todo lo posible para determinar lo que está buscando. Un selector universal puede devolver muchos nodos dependiendo de la complejidad de la página. Incluso si necesita revisar todo lo que alguien puede ver, eso significa que puede usarlo 'body *'
como selector para cortar todo el head
contenido.