2009-04-08 8 views
1

J'essaie d'utiliser JQuery pour obtenir les valeurs de ListItems dans une liste non ordonnée (voir ci-dessous). Le code ci-dessous est proche du fonctionnement, mais il renvoie toujours la valeur du premier ListItem, même si le second est coché.Récupère les valeurs ListItem en utilisant JQuery

Merci, Russ.

$(document).ready(function() { 
     $("li").click(function() { 

      $("input:checked").each(function() { 

       alert($("label").attr('InnerText')); 

      }); 
     }); 
    }); 

<div> 


    <ul class="AspNet-CheckBoxList-RepeatDirection-Vertical"> 
     <li class="AspNet-CheckBoxList-Item"> 
      <input id="CheckBoxList1_0" type="checkbox" name="CheckBoxList1$0" value="first1" /> 
      <label for="CheckBoxList1_0">First $30.00</label> 
     </li> 
     <li class="AspNet-CheckBoxList-Item"> 
      <input id="CheckBoxList1_1" type="checkbox" name="CheckBoxList1$1" value="second2" /> 
      <label for="CheckBoxList1_1">Second $25.00</label> 
     </li> 
    </ul> 


</div> 

Répondre

8

Dans votre chaque rappel vous n'êtes pas limiter la portée du sélecteur et il est juste saisir la première étiquette, il trouve quand vous appelez .attr. Essayez quelque chose comme ...

$("input:checked").each(function() { 
    $(this).next("label").text(); //Or 
    $(this).parent().find("label").text(); //Depending on your markup 
}); 

Ce sélecteur de champs aux éléments autour de la case à cocher plutôt que l'ensemble du document

+0

Merci à! Cela a fonctionné parfaitement! –

Questions connexes