2010-04-19 7 views
1

J'ai une page html où j'ai un tableau d'éléments (un élément par ligne) où chaque élément est un lien HTML qui dit "Ajouter" et il y a une zone de texte à côté de chaque lien avec un numéro.comment obtenir la valeur d'une zone de texte qui est à côté de mon texte

le lien de texte et la zone de texte sont dans le même td à l'intérieur de la ligne de la table. Comment puis-je, en utilisant jquery, capturer la valeur de la zone de texte qui se trouve à la droite du lien que je clique sur.

Répondre

4

Vous pouvez donner votre lien une classe, faites ceci:

$("a.myClass").click(function() { 
    alert($(this).next().val()); 
}); 

Si vous avez beaucoup de liens, ou ils sont dynamiquement ajouté, changer un peu d'utiliser .live(), comme ceci:

$("a.myClass").live('click', function() { 
    alert($(this).next().val()); 
}); 

Si vous voulez déplacer la zone de texte autour, ont un élément en entre, etc, mais il est toujours la seule entrée dans la cellule, vous pouvez changer ceci: $(this).next().val() à quelque chose comme ceci:

$(this).closest('td').find(':text').val() 
+0

Battez-moi. Nice et simple. – macca1

+0

Yup totalement d'accord avec vous Macca. C'est sympa et simple et Nick nous bat toujours la plupart du temps quand il s'agit de Jquery & .Net :-) – Raja

0

Je suggérerais d'utiliser des noms de classe pour supprimer la conception des fonctions. Basé sur l'exemple de Nick Craver, vous comptez sur le design pour ne pas changer. C'est à dire. un changement de conception nécessiterait un changement de fonctionnalité. L'exemple ci-dessous fonctionnerait dans plus de scénarios, indépendamment du HTML.

<script type="text/javascript"> 
$(function() { 
    $(".row .rowClicker").click(function(){ 
     alert($(this).parents(".row").find(".rowVal").val()); 
    }); 
}); 
</script> 

<div class="row" ><input class="rowVal" /> <a class="rowClicker">click</a></div> 
<div class="row" ><input class="rowVal" /> <div id="newparent"><a class="rowClicker">click</a></div></div> 
<div class="row" ><input class="rowVal" /> <a class="rowClicker">click</a></div> 
Questions connexes