Nehmen wir an, ich habe ein jQuery-Objekt / eine Sammlung in einer Variablen namens obj gespeichert, die ein DOM-Element mit einer ID namens target enthalten sollte.
Ich weiß nicht im Voraus, ob Ziel ein Kind in obj ist, also:
%Vor%oder wenn obj gleich Ziel ist, also:
%Vor%oder wenn target ein Element der obersten Ebene in obj ist, d. h.:
%Vor%Ich brauche eine Möglichkeit, Ziel aus obj auszuwählen, aber ich weiß nicht im Voraus, wann .find verwendet werden soll und wann Verwenden Sie .filter .
Was wäre die schnellste und / oder prägnanteste Methode, Ziel aus obj zu extrahieren?
Was ich herausgefunden habe, ist:
%Vor%UPDATE Ich füge Lösungen zu einer JSPERF-Testseite hinzu, um zu sehen, welche die beste ist. Derzeit ist meine Lösung immer noch die schnellste. Hier ist der Link, bitte führen Sie die Tests aus, damit wir mehr Daten haben:
Sie können wrap
die Sammlung mit einem anderen Element verwenden und die Methode find
verwenden:
Wenn Sie sich Sorgen um die Leistung machen, sollten Sie jQuery nicht verwenden. Vanille JavaScript ist immer schneller als jQuery.
Eine Alternative ist die Methode querySelector
oder querySelectorAll
:
Ich würde für die Verpackung gehen & gt; Lösung finden, weil sie am besten lesbar ist (und ich bezweifle, dass Sie die Leistung weiter optimieren müssen). Aber leistungsmäßig sollten Sie nur die Methoden ausführen, die Sie benötigen, bis Sie Folgendes benötigen:
%Vor%Tags und Links jquery jquery-selectors performance cross-browser jquery-traversing