2015-09-23 1 views
-1

J'ai besoin d'atteindre la balise span avec class = ustatus et d'obtenir l'objet jQuery pour id = foo.Obtention d'une valeur indéfinie en tant que valeur pour la balise span lors du parcours d'une table

<tr> 
    <td> <input name = 'user' type='radio 'id='foo'/> </td> 
    <td> <input id='boo'/> </td> 
    <td> <input id='too'/> </td> 
    <td> <input id='yoo'/> </td> 
    <td> <span class='ustatus'> Active </span> </td> 
</tr> 

Je tentais comme:

$("input[name = 'user']:checked").closest('td').find('.ustatus').first().val() 

mais obtenir undefined comme valeur. Où ai-je fait une erreur?

Répondre

1

Peu de questions dans votre code:

1) Vous devez traverser à tr au lieu de td. que la durée se situe dans l'un des td fratrie de parent boutons radio sélectionnés td

2) élément de réglage de sensibilité ont la propriété text/html associée à elle et non value.you besoin d'utiliser .text()/.html() au lieu de .val()

3) comme il n'y a qu'un seul élément ustatus dans tr, vous n'avez pas besoin du sélecteur .first().

$("input[name='user']:checked").closest('tr').find('.ustatus').text() 
+0

Pourquoi est-ce que je ne peux pas atteindre 'span' depuis' td'? Pourquoi ai-je besoin d'atteindre d'abord 'tr' et ensuite de voyager en travée? –

+0

@SuhailGupta 'comme span se trouve dans l'un des td frère de boutons radio sélectionnés parent td' –

2

Vous devez utiliser

$("input[name = 'user']:checked").closest('tr').find('.ustatus:first').text() 

Parce que, ustatus est le frère de votre parenent td. Donc, vous devez d'abord traverser au parent tr. Ensuite, vous pouvez utiliser la méthode find(), qui recherche les éléments enfants

+0

Quelle différence cela fait-il? Pourriez-vous élaborer? –

+0

Je l'ai déjà expliqué dans la réponse. Votre ustatus n'est pas l'enfant du td parent actuel. –

0

durée n'a pas de valeur que vous devez utiliser du texte() ou html()

var text = $("input[name = 'user']:checked").parent().parent().find('.ustatus').text();

ou

var html = $("input[name = 'user']:checked").parent().parent().find('.ustatus').html() ;

DEMO

Parce que votre ancre est l'entrée que vous devez aller 2 niveau jusqu'à tr où vous pouvez trouver le td qui a la classe .ustatus si vous avez besoin d'ajouter 2 parent()

0

Vous ciblez la cellule, puis essayer de trouver « .ustatus » classe de premier ordre pour prendre le contenu html/valeur, en utilisant val()

$("input[name = 'user']:checked").closest('td').find('.ustatus').first().val() 

val() est utilisé pour obtenir des valeurs de champs de formulaire. Utilisez text() ou html() pour obtenir du contenu en texte brut ou des balises, respectivement.

$("input[name ='user']:checked").closest('tr').find('.ustatus:first').text() 

fonctionnerait comme nous trouvons .ustatus:first en ligne et prendre le contenu en utilisant text().