Bạn có thể truyền a *
để getElementsByTagName()
nó sẽ trả về tất cả các thành phần trong một trang:
var all = document.getElementsByTagName("*");
for (var i=0, max=all.length; i < max; i++) {
// Do something with the element here
}
Lưu ý rằng bạn có thể sử dụng querySelectorAll()
, nếu có sẵn (IE9 +, CSS trong IE8), để chỉ tìm các phần tử với một lớp cụ thể.
if (document.querySelectorAll)
var clsElements = document.querySelectorAll(".mySpeshalClass");
else
// loop through all elements instead
Điều này chắc chắn sẽ tăng tốc các vấn đề cho các trình duyệt hiện đại.
Các trình duyệt hiện hỗ trợ foreach trên NodeList . Điều này có nghĩa là bạn có thể trực tiếp lặp các phần tử thay vì viết vòng lặp của riêng bạn.
document.querySelectorAll('*').forEach(function(node) {
// Do whatever you want with the node object.
});
Lưu ý về hiệu suất - Làm hết sức mình để phạm vi những gì bạn đang tìm kiếm. Một bộ chọn phổ quát có thể trả về rất nhiều nút tùy thuộc vào độ phức tạp của trang. Ngay cả khi bạn cần xem qua mọi thứ mà ai đó có thể thấy, điều đó có nghĩa là bạn có thể sử dụng 'body *'
làm công cụ chọn để cắt tất cả head
nội dung.