18

我试图在复选框的每个循环中获取输入值,我无法弄清楚如何让它工作,该值一直作为第一个复选框值输出。

$('.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;
    });
});

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

有任何想法吗?

4

4 回答 4

51

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

valu = $(this).val();

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

.each(function(index, elem) {

然后使用参数:

valu = $(elem).val();
于 2012-05-19T20:30:41.477 回答
4
$('.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;
    });
});
于 2012-05-19T20:30:32.930 回答
2

用于this查找被点击的控件

$('input[class=multadd]:checked').each(function(index) {
        val = index + 2;
        valu = $(this).val();
        multiz = multiz + '&aid' + val + '=' + valu;
    });
于 2012-05-19T20:32:12.107 回答
2
var texts= $(".class_name").map(function() {
    return $(this).val();         
}).get();
于 2015-09-17T08:23:11.643 回答