• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

jQuery each mit zusätzlichem Zähler

AzRaIL

Mitglied
Moin,

habe ein Formular mit 6 Input Feldern und 6 labels
Die labels sind durchnummeriert id="label1-6"

Nun möchte ich das mit den Inputfeldern bei denen was eingetragen wurde etwas gemacht wird. Die jeweiligen Labels der ausgefüllten Inputfelder sollen daneben stehen.

Mein Ansatz funktioniert schon fast, nur werden die labels nicht richtig ausgegeben

Ansatz:

Code:
var i = 1;
 jQuery('#formular input').each(function() {
     if (jQuery(this).val().length > 0) {
            var piece = jQuery(this).val();
            jQuery( "#ff_elem1643" ).val(jQuery('#ff_elem1643').val() + ", " + jQuery("#label"+i).text() + " - " + piece);
            i++;
     }
});

Wenn ich jetzt zb. Input 1,3 und 6 ausfülle werden diese richtig angezeigt, jedoch dazu dann einfach nur die ersten 3 labels und nicht die dazugehörigen.

Seht Ihr meinen Denkfehler?

lg
 
Seht Ihr meinen Denkfehler?

Nö. Für mich sieht das aus wie: Erstelle einen String aus drei Elementen und schreibe ihn in den Selektor #ff_foobar.

Bau das Ganze mal vernünftig und leserlich um: var i kann gelöscht werden, weil each() bereits einen Iterator liefert (siehe Doku), und ersetze 'jQuery' durch '$'. Wenn du das hast, schreibe den Code, incl. zugehörigem HTML, in ein jsFiddle, so dass es auch nachvollzogen werden kann.
 
Die labels haben die IDs label1-6
Die inputs haben die IDs feld1-6

Was ich meine ist zb. wenn ich feld 4 und feld 5 ausfülle und den Button Klicke erscheint

, Feld 1 - 3, Feld 2 - 5

jedoch sollte es

, Feld 4 - 3, Feld 5 - 5

lauten

Es müsste also irgendwie möglich sein den labels nicht i als zusatz zu geben(da sich das immer um 1 erhöht) sondern den Iterationsschritt des eaches?
 
Es müsste also irgendwie möglich sein den labels nicht i als zusatz zu geben(da sich das immer um 1 erhöht) sondern den Iterationsschritt des eaches?

Dann wirf das i doch raus und iteriere mit dem Objekt.

$(element).each(function(index) {
// tu was mit index
})
 
Ok...das klappt. Wundert mich aber. index wäre doch hierbei ein Übergabeparameter. Wieso zählt dieser die Durchläufe mit und speichert sie?
 
Zurück
Oben