В примере кода, который я написал
var as = toArray(document.getElementsByClassName("false")).filter(function (el) {
return el.tagName === "A";
});
И я думал, что смогу заменить это на
var as = document.querySelectorAll("a.false");
Теперь, прочитав следующие факты
- Притворись, что поддержка браузера не проблема (у нас есть прокладки и полифилы).
- Притворись, что ты не в своем общем jQuery-образе мышления, ты будешь использовать QSA для получения каждого элемента.
- Я собираюсь написать
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