2017-12-05 1 views
0

Ich bin nicht in der Lage für den Zugriff auf das Eingabefeld oder eine der dynamisch erzeugten Eingabefelder aus der folgenden HTML zuzugreifen:Unable Eingabetextfeld Wert jQuery

<div class="row"> 
<div class="input_fields_wrap" id="Categories"> 
<button class="add_field_with_subs">Add More Categories</button> 
<div class="input_fields"><input type="text" name="someInput"><a href="#" class="add_sub_field">Add Sub-Categories</a></div> 
</div> 
</div> 

Verwendung des folgenden Codes gibt den richtigen Wert von „2 „:

$("#Categories").children("div").each(() => alert($(this).children.length)); 

und der Alarm wird ausgelöst in geeigneter Weise für jedes dynamisch erstellte Feld ...

jedoch jeder Versuch, den Wert des entsprechenden Eingabetextfeld y zu erhalten gibt eine Antwort von "undefined".

Ich habe .children versucht ("Input"), .children (": Eingabe"), .last(), .find usw.

Würde jemand sein Kann mir bitte sagen, was ich falsch mache?

+0

Würde nicht '$ (this)' in diesem Zusammenhang das Kind sein und nicht die 'div'? Deine "Eingabe" hat keine Kinder. – zgood

+0

@zgood - Es wäre, wenn es keine Pfeilfunktion wäre. –

+0

@ T.J.Crowder ah ok hab ich, ich bin noch nicht zu dieser Syntax verwenden. Ich dachte, es wäre eine Abkürzung für eine anonyme Funktion – zgood

Antwort

1

children nur einzelne Ebene von DOM Traverse verwendet find statt

Machen Sie es

$("#Categories").find("input").each(function(){ 
    //your logic 
}); 
+0

Die 'Div's in der Frage * sind * direkte Kinder von' #Categories'. Das Problem ist, dass das OP eine Pfeilfunktion verwendet hat. (Ich sehe, du hast das geändert, aber hast es nicht rausgerufen.) –

+0

@ T.J.Crowder ja, Idee war es, jeden 'Eingang' zu erreichen. Aber ich stimme zu, das ist nicht unbedingt das Problem mit OP, da es auch mit Kindern arbeiten kann - $ ("# Categories"). Children ("div"). Find ("input") .each() ' – gurvinder372

+0

scheint wie es sollte '$ (" # Kategorien "). find (" input [type = text] "). je (funktion (i, j) { alert ($ (j) .val()); }) ; ' – RohitS