Ich habe gehört, dass querySelector
& querySelectorAll
neue Methoden zur Auswahl von DOM
Elementen sind. Wie sie zu den älteren Methoden vergleichen, getElementById
und getElementsByClassName
in Bezug auf Leistung und Browser - Unterstützung?
Wie ist die Leistung im Vergleich zur Verwendung des Abfrage-Selektors von jQuery?
Gibt es eine Best-Practice-Empfehlung für welches native Set?
javascript
jquery
dom
geht zu elf
quelle
quelle
getElementById
undgetElementsByClassName
sind immer noch ideal für die Zwecke ihrer Namen beschreiben.qS/qSA
kann aus jedem Elementkontext verwendet werden,gEBI
kann aber nur aus demdocument
Kontext verwendet werden.getElementById
stimmt mit denid
Attributen überein , um DOM-Knoten zu finden, währendquerySelector
nach Selektoren gesucht wird. So für einen ungültigen Selektor zB<div id="1"></div>
,getElementById('1')
funktionieren würde , währendquerySelector('#1')
fehlschlagen würde, wenn Sie es sagen , die übereinstimmenid
Attribut (zBquerySelector('[id="1"]')
.querySelector
undquerySelectorAll
sind jetzt voll unterstützt. caniuse.com/#feat=queryselectorAntworten:
"Besser" ist subjektiv.
querySelector
ist die neuere Funktion.getElementById
wird besser unterstützt alsquerySelector
.querySelector
wird besser unterstützt alsgetElementsByClassName
.querySelector
Mit dieser Option können Sie Elemente mit Regeln finden, die nicht mitgetElementById
und ausgedrückt werden könnengetElementsByClassName
Sie müssen das geeignete Werkzeug für eine bestimmte Aufgabe auswählen.
(Oben zum
querySelector
LesenquerySelector
/querySelectorAll
).quelle
getElementById
>querySelector
>getElementsByClassName
, weil ich dachte ,getElementsByClassName
sollten gleiche Maß an Unterstützung habengetElementById
?Die Funktionen
getElementById
undgetElementsByClassName
sind sehr spezifisch, währendquerySelector
undquerySelectorAll
sind ausgefeilter. Ich vermute, dass sie tatsächlich eine schlechtere Leistung haben werden.Außerdem müssen Sie in den Browsern, auf die Sie abzielen, prüfen, ob die einzelnen Funktionen unterstützt werden. Je neuer es ist, desto höher ist die Wahrscheinlichkeit, dass es an Unterstützung mangelt oder die Funktion "fehlerhaft" ist.
quelle
nodelist ... is not live
Können Sie dafür Unterlagen vorlegen? @ W.Prins beide Methoden geben denElement
Typ zurück.