2012-01-20 2 views
0

J'utilise JQuery .each() .Chaque() sur une liste et je me demande comment récupérer le texte à partir d'un champ de saisie dans l'élément de la liste, le code ressemble à:JQuery obtenir un texte d'entrée lorsque vous utilisez la fonction

<ul id="foo"> 
    <li id="1"> 
    <input type="text" /> 
    </li> 
    <li id="2"> 
    <input type="text" /> 
    </li> 
</ul> 

J'ai besoin alors d'obtenir l'identifiant et le texte à envoyer à un appel AJAX

$(#foo li).each(function() { 
    id = this.id; // Works fine 
    mytext = ???; // The bit i'm stuck with 
    ... 
}); 

Il n'y a qu'une seule commande d'entrée par élément de la liste.

Répondre

2
$('#foo li').each(function() { 
    id = this.id; // Works fine 
    mytext = $(this).find('input[type=text]').val(); 
    $('#foo').after('<div> text in input = ' +mytext + '</div>'); 
}); 

ici, il travaille http://jsfiddle.net/J8ZUT/1/

+0

Merci, je l'ai utilisé .Find() des charges de temps avant, il est juste la fin d'une longue journée! – MattP

1
$(#foo li).each(function() { 
    id = this.id; // Works fine 
    mytext = $(this).find(':input').val(); // <------------ 
    ... 
}); 

Notez que cela va aussi travailler avec d'autres et sélectionne « entrée » types, cela ne fonctionnera aussi quand il n'y a qu'un seul :input dans l'élément de liste.

Questions connexes