Ви можете передати "а", *
щоб 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 . Це означає, що ви можете безпосередньо циклічити елементи замість того, щоб писати власні для циклу.
document.querySelectorAll('*').forEach(function(node) {
// Do whatever you want with the node object.
});
Примітка про ефективність - Майте все можливе, щоб розширити те, що ви шукаєте. Універсальний селектор може повернути безліч вузлів залежно від складності сторінки. Навіть якщо вам потрібно переглянути все, що хтось може бачити, це означає, що ви можете використовувати 'body *'
як селектор, щоб вирізати весь head
вміст.