Danke, dass Sie sich die Zeit nehmen, dies zu lesen.Schleifen durch Elemente mit jQuery basierend auf dem Namen Attribut anstelle von ID
Ich habe eine unbekannte Anzahl von (dynamisch eingefügten) Eingabeelementen in einem Formular, an das ich das in jQuery UI enthaltene Datepicker-Widget anhängen möchte.
Alle Eingabeelemente, an die ich den Datepicker anhängen möchte, haben eine Klasse von "date-pick". Offensichtlich, weil wir mehr als ein übereinstimmendes Element haben, brauchen wir mehr als nur einen Klassennamen, so dass der Datumswert zum Ursprungsfeld und nicht nur zur ersten Übereinstimmung zurückgegeben wird.
Normalerweise würde ich wahrscheinlich tun nur so etwas wie:
$("input.date-pick").each(function(){
$(this).datepicker({dateFormat: "yy-mm-dd"});
});
jedoch im Code mit ich arbeite, die Eingabeelemente haben keine eindeutigen IDs, bis die Formulardaten gespeichert wird (etwas, das Ich kann nicht ändern), obwohl sie eindeutige Namensattributwerte des Formats name="field_id_x[y][z]"
haben, das, wenn das Formular gespeichert wird, dann in eine ID des Formats id="field_id_xyz"
konvertiert wird.
Also meine Frage ist, kann mir jemand zeigen, wie man alle Eingabeelemente mit einer Klasse von "date-pick" basierend auf ihren Namen Attributwerte durchlaufen?
(PS Es könnte auch wert sein, zu erwähnen, dass die Anzahl der passenden Eingabeelemente in Form erhöht werden kann/durch den Benutzer im laufenden Betrieb verringert.)
ich Ihre Frage nicht folgen. Die jQuery, die Sie dort geschrieben haben, ist vollkommen gültig: Sie durchläuft alle Eingabeelemente mit einer Klasse von '.date-pick' und hängt ein Datepicker-Steuerelement an. Warum müssen sich die Namen einmischen? – VoteyDisciple
Votey, siehe meinen Kommentar zu T.J. Crowders Antwort unter –
@meta: ... und sehe meine Antwort. :-) –