Dive Into Greasemonkey

Teaching an old web new tricks

4.4. Doing something for every HTML element

Sometimes you need to do something with every HTML element on a page. Firefox supports getElementsByTagName('*'), which returns a collection you can loop through.

Example: Loop through every element

var allElements, thisElement;
allElements = document.getElementsByTagName('*');
for (var i = 0; i < allElements.length; i++) {
    thisElement = allElements[i];
    // do something with thisElement
}
[Note]

You should only do this if you really need to do something with every element. If you know in advance that you only want to operate on certain elements, it will be faster to use an XPath query to get exactly the elements you want. See Doing something for every element with a certain attribute for more information.

Real examples

← Testing whether a page includes an HTML element
Doing something for every instance of a specific HTML element →