在一段示例代码中,我编写了
var as = toArray(document.getElementsByClassName("false")).filter(function (el) {
return el.tagName === "A";
});
我当时想我可以用
var as = document.querySelectorAll("a.false");
现在阅读以下事实之后
qsa
而不是document.querySelectorAll
。 问题:什么时候应该比常规方法更支持QSA?
很明显,如果您在执行
qsa("a")
或qsa(".class")
或qsa("#id")
,则这样做是错误的,因为有更好的方法(byTagName,byClassName,byId)。显然,
qsa("div > p.magic")
是一个明智的用例。问题:但是
qsa("tagName.class")
是QSA的良好用例吗?此外,还有这些叫做
NodeIterator
的东西我问了一个关于QSA vs NodeIterator的问题
最佳答案
当gEBI,gEBN,gEBCN由于选择器复杂而无法使用时,您应该使用QSA。
QSA与DOM解析是一个优先事项,您将如何处理返回的数据集。