2014-02-18 19 views
7

Ich habe mein selbst JavaScript und jQuery für ein paar Monate gelehrt, aber ich bin immer noch verwirrt mit JavaScript-Objekten und jQuery-Objekten.jQuery .each() Indexwert

Im folgenden Beispiel habe ich der Variablen ein jQuery-Objekt zugewiesen. Die sollte aus einem Array von zwei Objekten bestehen.

Meine Frage ist, warum muss ich die value Variable wieder in das jQuery-Objekt in .each() Funktion umbrechen?

Der Beispielcode, den ich verwende, um Werte von Selects anzufügen, die nicht Teile des Formulars sind, das eingereicht wird;

Antwort

7

weil $target ein jQuery-Objekt ist, aber wenn Sie iterieren, erhalten Sie einen dom-Elementverweis in Ihrem Iterationshandler und kein jQuery-Objekt. Wenn Sie also auf jQuery-Methoden für dieses Objekt zugreifen möchten, müssen Sie das Objekt erneut umbrechen.

Durch die Art und Weise ein jQuery-Objekt iterieren Sie .each() statt jQuery.each()

$('select.to_append').change(function() { 
    var $target = $('select.to_append'); 
    var $form = $('#anotherForm'); 

    $target.each(function (index, el) { 
     $form.append('<input name="' + $(el).attr('name') + '" type="hidden" value="' + $(el).val() + '"></input>'); 
    }); 
}); 
+0

Dank verwenden kann, werde ich für Unterschied zwischen diesen beiden Funktionen suchen. – Dimt