jQuery在.each循环中获取输入值

Jim*_*nks 11 javascript each jquery

我试图在复选框的每个循环中获取输入值,我无法弄清楚如何使其工作,值保持输出作为第一个复选框值.

$('.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;
    });
});
Run Code Online (Sandbox Code Playgroud)

问题是变量的输出valu是每个循环的第一个复选框,而不是循环的当前复选框,我需要当前值.

有任何想法吗?

Guf*_*ffa 38

您可以使用它this来访问循环中的当前元素:

valu = $(this).val();
Run Code Online (Sandbox Code Playgroud)

当前元素也作为参数发送到回调函数,因此您可以将其拾取:

.each(function(index, elem) {
Run Code Online (Sandbox Code Playgroud)

然后使用参数:

valu = $(elem).val();
Run Code Online (Sandbox Code Playgroud)

  • @mkmnstr:因为`elem` 是元素,而不是元素的jQuery 对象。`$()` 函数接受不同种类的参数,而不仅仅是选择器。如果您发送一个元素,它只会创建一个包含该元素的 jQuery 对象。第一个示例中的调用 `$(this)` 以相同的方式使用该函数。 (3认同)

Kyl*_*cey 5

$('.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;
    });
});
Run Code Online (Sandbox Code Playgroud)


小智 5

var texts= $(".class_name").map(function() {
    return $(this).val();         
}).get();
Run Code Online (Sandbox Code Playgroud)