web-dev-qa-db-fra.com

jQuery récupère la valeur d'entrée dans une boucle .each

J'essaie d'obtenir la valeur d'entrée dans chaque boucle d'une case à cocher, je ne vois pas comment le faire fonctionner, la valeur reste en sortie comme première valeur de case à cocher.

$('.custemb, input[name=cb], input[class=multadd]').live("click", function() {

    $('input[class=multadd]:checked').each(function(index) {
        val = index + 2;
        valu = $('input[class=multadd]:checked').val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
});

le problème est que la sortie de la variable valu est la première case à cocher de l'ensemble de chaque boucle, pas la case à cocher actuelle de la boucle, j'ai besoin de la valeur actuelle.

Des idées?

10
JimmyBanks

Vous pouvez utiliser this pour accéder à l'élément actuel de la boucle:

valu = $(this).val();

L'élément actuel est également envoyé en tant que paramètre à la fonction de rappel afin que vous puissiez le récupérer:

.each(function(index, elem) {

Ensuite, utilisez le paramètre:

valu = $(elem).val();
35
Guffa
$('.custemb, input[name=cb], input[class=multadd]').live("click", function() {

    $('input[class=multadd]:checked').each(function(index) {
        var $this = $(this);
        val = index + 2;
        valu = $this.val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
});
3
Kyle Macey

Utilisez this pour trouver le contrôle sur lequel vous avez cliqué

$('input[class=multadd]:checked').each(function(index) {
        val = index + 2;
        valu = $(this).val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
2
web_bod
var texts= $(".class_name").map(function() {
    return $(this).val();         
}).get();
1
sadam