Benchmark so sánh QSA & .forEach
vs một NodeIterator
Khi sử dụng NodeIterator
toArray(document.querySelectorAll("div > a.klass")).forEach(function (node) {
// do something with node
});
var filter = {
acceptNode: function (node) {
var condition = node.parentNode.tagName === "DIV" &&
node.classList.contains("klass") &&
node.tagName === "A";
return condition ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT
}
}
// FIREFOX Y U SUCK
var iter = document.createNodeIterator(document, NodeFilter.SHOW_ELEMENT, filter, false);
var node;
while (node = iter.nextNode()) {
// do thing with node
}
Bây giờ hoặc NodeIterator
's mút hoặc tôi đang làm sai.
Câu hỏi: Khi nào tôi nên sử dụng NodeIterator
?
Trong trường hợp bạn không biết, DOM4 chỉ định những gì NodeIterator là.