私が書いたサンプルコードの一部で
var as = toArray(document.getElementsByClassName("false")).filter(function (el) {
return el.tagName === "A";
});
そして、私はそれを置き換えることができると考えていました
var as = document.querySelectorAll("a.false");
次の事実を読んだ後
- ふりをするブラウザーのサポートは問題ではありません (シムとポリフィルがあります)。
- すべての要素を取得するためにQSAを使用する必要があるという一般的なjQueryの考え方にふりをしてください。
- せっかちなので
qsa
代わりに書きます。document.querySelectorAll
質問:通常の方法よりも QSA を優先する必要があるのはどのような場合ですか?
より優れたメソッド (byTagName、byClassName、byId) があるため、実行qsa("a")
または実行が間違っていることは明らかです。qsa(".class")
qsa("#id")
それqsa("div > p.magic")
が賢明なユースケースであることも明らかです。
質問:しかしqsa("tagName.class")
、QSA の適切な使用例はありますか?
さらに別として、と呼ばれるものもありますNodeIterator
QSA と NodeIteratorについて質問しました