Ich habe einen Code geschrieben, der im Grunde alle input type=text
Elemente wie folgt auswählt :
$('.sys input[type=text]').each(function () {}
Wie ändere ich es, um input[type=text]
oder auszuwählen select
?
javascript
jquery
Jack
quelle
quelle
context form
verwendetfind form
,find form
ist das effizienter als dascontext form
(One-Call-Funktion vermieden). Dies gilt für fast alle verwendeten Selektoren. Dann ist IMO thefind form
effizienter als dasnormal CSS selector
, da beide Teile des Selektors relativ zum Wurzelknoten sind, wobei in derfind form
nur der.sys
Teil relativ dazu ist und danninput[type=text],select
auf einem viel kleineren Satz von Elementen ausgeführt wird, so dass es schneller sein kann (Aber dies muss durch Tests überprüft werden)$
Anrufs für Ihre App so wichtig ist, vermeiden Sie bitte die Verwendung von jQuery insgesamt :). Diese Antwort versuchte, die Frage von OP zu beantworten. Wenn es sich um eine Frage der Leistung handelte, wird diese Antwort überhaupt nicht hier sein. Trotzdem danke für den Kommentar :), schätze es$
Anrufs, sondern um alle$
Anrufe, die in einer Anwendung vorhanden sind. IMO, wenn Sie verschiedene Möglichkeiten haben, dasselbe zu tun, versuche ich immer die zu wählen, die eine bessere Leistung erzielt.slow performance
===unhappy users
. Außerdem können wir beide die Frage eines OP mit mehreren Antworten beantworten (wie Sie es getan haben) und jeweils Vorteile / Unannehmlichkeiten für jede von ihnen bieten (wie ich es im Kommentar getan habe). IMO ist es wichtig zu beachten, warum alle Antworten unterschiedlich sind und gleichzeitig das gleiche Ergebnis liefern. Wir können auch Vanille-JavaScript-Code schreiben, der langsamJavaScript
performance
$
, klassifizieren Sie Ihre Divs spezifisch und verwenden Siedocument.getElemenById/ElementsByClassName
, anstatt$
jQuery zu überprüfen, was viel Überprüfung / String-Analyse Ihres Selektors durchführt für seine performante Bibliothek. Und ich habe ehrlich gesagt nicht gesehen, wie eine App langsamer wurde, weil ich$
eine zu viele anrief . Wenn Sie eine Website haben, auf der dieses ProblemBEARBEITEN: Tatsächlich entspricht dieser Code oben der untergeordneten
.sys > input[type=text]
Auswahl, wenn Sie den Nachkommen select (.sys input[type=text]
) möchten , müssen Sie die von @NiftyDude angegebenen Optionen verwenden.Mehr Informationen:
jQuery.children()
quelle
chilren
stattchildren
Wenn Sie mehrere Eingaben als Text in einem Formular oder einer Tabelle haben, die Sie durchlaufen müssen, habe ich Folgendes getan:
Ich habe bei jeder Eingabe überprüft, ob der Typ auf "Text" gesetzt ist. Dann wird dieses Element erfasst und in der jQuery-Liste gespeichert. Dann würde es diese Liste durchlaufen. Sie können eine temporäre Variable für die aktuelle Iteration wie folgt festlegen:
Dadurch wird das aktuelle Element für jede Schleife auf die aktuelle Iteration von eingestellt. Dann können Sie mit der temporären Variablen tun, was Sie wollen.
Hoffe das hilft jedem!
quelle
zum Schleifen:
quelle