Когда использовать querySelectorAll

В куске кода примера я написал

var as = toArray(document.getElementsByClassName("false")).filter(function (el) {
    return el.tagName === "A";
});

И я подумал, что могу заменить это на

var as = document.querySelectorAll("a.false");

Теперь после прочтения следующих фактов

  • Представьте, что поддержка браузера не является проблемой (у нас есть shims и polyfills).
  • Представьте, что вы не находитесь в вашем общем 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

9
задан Community 23 May 2017 в 12:09
поделиться