Mit jquery scheint es zwei Möglichkeiten zu geben, ein Listenelement innerhalb einer ungeordneten Liste innerhalb des DOM zu finden.
%Vor%und
%Vor%Gibt es einen Grund, warum letzteres vorzuziehen ist? Es scheint, als würde man mehr Code benötigen, um das gleiche Ergebnis zu erhalten.
Ja. Geschwindigkeit. .find()
wird jedes Mal gewinnen. Und Geschwindigkeit der Verarbeitung ist gleichbedeutend!
jsPerf-Geschwindigkeitstest, um zu zeigen, was ich meine
Obwohl .find()
alles erhält, was ein Untergebener ist (Kinder, Kinder von Kindern, Kinder von Kindern von Kindern, usw.), und >
ist ein direkter Kindselektor. Es ist eine bessere Äpfel-zu-Äpfel, um eines der folgenden zu vergleichen:
$('ul li')
vs $('ul').find('li')
$('ul > li')
vs $('ul').children('li')
Wenn du .find('li')
machst, wird es immer noch der schnellste Weg sein, sogar schneller als .children('li')
.
1) Sie sind nicht gleich, die zweite Form wäre gleichbedeutend mit $("ul li");
und die erste entspricht $("ul").children("li")
2) Wenn Sie das zweite Formular verwenden, vereinfachen Sie die Parsing-Aufgabe von jQuery. Aber es macht Ihren Code weniger einfach, also würde ich es nicht empfehlen, es sei denn, Sie haben bewiesen, dass die Geschwindigkeit in Ihrem Fall sehr relevant ist. Dies bedeutet, dass Sie normalerweise mehr Code haben, zum Beispiel ein Element-Caching oder andere traversierende Funktionen, die die Verwendung von find
rechtfertigen.
Tags und Links jquery css jquery-selectors