Tun diese beiden Codefragmente identische Dinge? Wenn ja, wann sollte man gegenüber dem anderen verwendet werden? (Außer, wenn Sie etwas tun müssen Beteiligung
i
odervalue
)jquery selector looping vs using-Funktion jeder$("foo").each(function(i,value) { $(this).empty(); });
gegen
$("foo").empty();
Im Allgemeinen kann man davon ausgehen, dass
$("foo").someMethod()
bedeutet „laufensomemethod()
auf jedes Element, das die Streichhölzer Selektor, außer wenn der Name der Methodeeach
ist (dh jedes ist ein Sonderfall)
Antwort
Angenommen, Sie beziehen sich auf jQuery-Funktionen, ja, die beiden Codefragmente sind identisch.
Sie sollten die each()
Funktion entweder verwenden, wenn Sie mit dem Index arbeiten möchten, oder um eine lange Funktionskette zu verhindern.
Ihr Verständnis von $('foo').someMethod()
gilt für jQuery-Methoden. Aber seien Sie gewarnt, einige Plugins können den Selektor auf andere Weise behandeln oder nur das erste angepasste Element zum Beispiel beeinflussen.
Könnten Sie näher erläutern, wie ein Plugin den jquery-Selektor auf diese Weise "verschmutzt"? (wenn Sie sich auf $ ('') bezogen haben) – wal
Der Selektor wird nicht als solcher "verschmutzt", aber das Plugin ist möglicherweise nur in der Lage, beispielsweise das erste gematchte Element zu handhaben. – BenM
Ja, die meisten jQuery-Funktionen sind so aufgebaut.
Betrachten Sie das Codebeispiel:
$.fn.someMethod = function() {
return this.each(function() {
do_something(this);
});
};
Also selbst konnte man .each
wieder verwenden, sollten Sie nur verwenden:
$(selector).someMethod();
nicht
$(selector).each(function() {
$(this).someMethod();
});
- 1. jquery context selector vs .find()
- 2. jQuery Selector vs. Filter unerwartetes Ergebnis
- 3. jQuery Selector
- 4. Multiple Selector vs Single Selector Leistung
- 5. jQuery Selector
- 6. Jquery Selector
- 7. Databinding Vs Looping
- 8. JQuery Sub Selector Frage
- 9. jquery eq() und looping
- 10. JQuery Selector Frage
- 11. Verketten in jQuery Selector
- 12. jQuery Week Selector
- 13. Vereinfachen Sie jQuery Selector
- 14. JQuery $ (this) Kinder Selector
- 15. JQuery CSS Selector e.fn.e.init
- 16. jquery selector: übergeordnetes problem
- 17. Dynamische jQuery AppendTo Selector
- 18. jQuery Selector AND operator
- 19. jquery selector vorletzten
- 20. jQuery Looping Bug in iOS
- 21. Looping von Regeln Jquery
- 22. Looping jquery Block ui
- 23. DIVs Looping über jQuery
- 24. jquery child selector ohne übergeordnete
- 25. jQuery Selector für serverseitige Steuerung
- 26. jQuery single looping ein Bildzyklus
- 27. "für" vs "jeder" in Ruby
- 28. Sizzle.js (JQuery Selector Motor) Fehler/Bug
- 29. jQuery Selector Test für alle eine ClassType
- 30. Refactoring jQuery Mit einem Selector und Index
Wenn Sie don‘ t brauchen Sie den Index des Elements, das Sie leeren, es besteht keine Notwendigkeit, ein 'each() zu verwenden 'Befehl. Geh mit der kürzeren Syntax. – Lix
@Lix: es läuft auch schneller: http://jsperf.com/jquery-selector-looping-vs-using-function-each – RASG