jquery find versus Kontextauswahl
Das folgende html-snippet
<div class="something">
<p>Some text</p>
</div>
<div class="somethingElse">
<p>some other text</p>
</div>
Ich denke, die folgende jquery-snippets sind identisch (haben die gleiche Ergebnis):
$(".something").find("p").css("border", "1px solid red");
$("p", ".something").css("border", "1px solid red");
Meine Frage ist, ob ein snippet ist besser als der andere und sollte verwendet werden,
InformationsquelleAutor der Frage harpax | 2010-02-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die Anrufe sind nicht identisch.
Laut Brandon Aaron, der offenbar arbeitete auf jQuery, und auch nach den live-tests hierdie find-Methode wird immer schneller. Die Ergebnisse sehen Sie in der Abbildung unten. Bitte kommentieren, wenn mir etwas fehlt.
Mit 10% oder mehr Unterschied in der Geschwindigkeit, je nach browser, es scheint durchaus Wert, Verwendung finden.
Weitere Erklärung an Brandon ' s Seite ist hier.
InformationsquelleAutor der Antwort BrianFinkel
Beide Aufrufe identisch sind. Letztere nennen ist übersetzt in die bisherigen ein. Wenn Sie möchten, dass das weglassen der übersetzung Schritt, verwenden Sie die ehemalige.
InformationsquelleAutor der Antwort Gumbo
Ich denken kann ein Anwendungsfall, wo das
context
form könnte besser sein - in dem Fall, in dem Rahmen enthalten ist, in eine variable, die kann null sein.Beispiel:
Zweiten mal
do_something()
heißt, wenn wir$parent_element.find()
würde es versäumt haben, in der Erwägung, dass in diesem Beispiel, wenn$parent_element
ist nicht definiert oder leer der Kontext ist null, also: das gesamte Dokument.Zugegeben, dies ist ein Grenzfall, aber es kam gerade in etwas, was ich arbeiten war, also dachte ich würde ihn hier für die Nachwelt.
InformationsquelleAutor der Antwort Tom Auger
Finden ist besser, um 40%:
http://jsperf.com/jquery-find-vs-context-2/13
Beachten Sie den Unterschied:
beim übergeben
$myDiv
das jQuery-element als Kontext, der etwa 10% langsamer als die $.finden.wenn man
#myDiv
, wird der jQuery-selector, wie der Kontext, die 40% langsamer als die $.finden.$.finden > Kontext.
InformationsquelleAutor der Antwort dylanjha