web-dev-qa-db-fra.com

Obtenir l'ID par nom de classe JQuery

Salut c'est une jquery question:

je suppose que j'ai ceci:

<input type="checkbox" class="select" id ="select-1">

<input type="checkbox" class="select" id ="select-2">

et je veux obtenir l'id, de la case à cocher qui a été sélectionné lorsque je clique sur un bouton de soumission (remarque: vous ne pouvez sélectionner que 1) et j'ai cet événement de clic de bouton ici:

$("#submit").click(function(){

          if($(".select").is(':checked')){

              alert($(".select").attr('id'));
          }
});

Il alerte toujours "select-1" même si je coche la case avec l'id "select-2" .. Je suppose que ce sont tous les deux dans la même classe le premier avec le " .select "la classe à rechercher s'affiche dans l'alerte. Comment puis-je obtenir l'ID spécifique qui est vérifié en utilisant leurs noms de classe? Merci!

10
muffin

Cochez-vous une seule case à la fois?

alert( $(".select:checked").attr('id') );

Ou, si vous avez coché plusieurs cases à la fois:

$(".select:checked").each(function(){
   alert($(this).attr('id'));
});

Démo: http://jsfiddle.net/UTux2/

34
Cristy

Obtenez l'ID de cette façon

$(".select:checked").attr('id');

Gardez également à l'esprit que si un seul peut être sélectionné, il est préférable de le changer en radio.

3
Elon Than

Vous ne capturez pas la case cochée, vous demandez seulement "y en a-t-il une cochée?".

$("#submit").click(function(){

    var elem = $(".select:checked");

    if(elem.length > 0){
        alert(elem.attr('id'));
    }
});
2
MrCode
$("#submit").click(function(){  
          if($(".select").is(':checked')){
               var $this=$(".select").is(':checked');
               alert($this.attr('id'));
          }
});
2
Somnath Kharat

Il y a plusieurs éléments. Vous devez cocher toutes les cases ayant la même classe

$("#submit").click(function(){

          $(".select:checked").each(function(){
           alert($(this).attr('id'));
   });

});
2
sudhAnsu63

vous devez utiliser des boutons radio et non des cases à cocher pour permettre un choix parmi plusieurs.

<input type="radio" name="select" value="select-1">
<input type="radio" name="select" value="select-2">

alors les choses deviendront vraiment simples:

$("#submit").click(function(){

    alert($('[name="select"]:checked').val());
});
2
Dementic

essayez quelque chose comme ça, vous n'avez pas besoin d'itérer

        $(document).ready(function () {
            $("#submit").click(function(){
                  if($(".select").is(':checked')){
                      alert($(".select:checked").attr('id'));
                  }
            });
        });
0
rajesh kakawat