Dans un exemple de code que j'ai écrit
var as = toArray(document.getElementsByClassName("false")).filter(function (el) {
return el.tagName === "A";
});
Et je pensais que je pourrais remplacer ça par
var as = document.querySelectorAll("a.false");
Maintenant, après avoir lu les faits suivants
- Faites comme si la prise en charge des navigateurs n'était pas un problème (nous avons des cales et des polyfills).
- Faites comme si vous n'étiez pas dans votre état d'esprit jQuery générique et que vous deviez utiliser QSA pour obtenir chaque élément.
- Je vais écrire
qsa
au lieu dedocument.querySelectorAll
parce que je suis paresseux.
Pregunta: Quand dois-je privilégier QSA par rapport aux méthodes normales ?
Il est clair que si vous faites qsa("a")
ou qsa(".class")
ou qsa("#id")
vous vous y prenez mal car il existe des méthodes (byTagName, byClassName, byId) qui sont meilleures.
Il est également clair que qsa("div > p.magic")
est un cas d'utilisation judicieux.
Pregunta: Mais est-ce que qsa("tagName.class")
un bon cas d'utilisation de QSA ?
En outre, il existe aussi des choses appelées NodeIterator
J'ai posé une question sur QSA vs NodeIterator