1

我从选定的复选框中传递了一些带有 ID 的值

我收集要发布的数组中的值但是我也想对标题中的值求和,但我无法做到这一点......

我哪里错了?我知道它在调用返回的变量,但我不知道如何获取它

function doAlloMath(){


        var sum=0;

        alert($("input[name=alloInv]:checked").map(function () {return this.value;}).get().join(","));
        alert($("input[name=alloInv]:checked").map(function () {return this.title;}).get().join(","));
        alert($("input[name=alloInv]:checked").each(function (a,b) {sum += parseFloat ($(this.title)); return sum;}).get());



    }
4

3 回答 3

1

我认为您的 $(this.title) 可能指向 $.each() 上下文中的意外情况

于 2012-12-03T21:55:06.170 回答
0

除非明确设置,否则复选框没有值。要查看复选框是否被选中,您需要使用prop('checked');

你可以尝试更多这样的东西:

function doAlloMath() {
    var sum = 0,
        elm = $("input[name=alloInv]:checked"),

        values = elm.map(function() {
            return this.value;
        }).get().join(","),

        titles = elm.map(function() {
            return this.title;
        }).get().join(",");

    elm.each(function(idx, elem) {
        sum += parseFloat(this.title);
    });

    console.log(sum);
    console.log(values);
    console.log(titles);
}​
于 2012-12-03T21:53:08.387 回答
0

我猜你的 HTML 看起来像这样:

<input type="checkbox" name="alloInv" value="10.0" />
<input type="checkbox" name="alloInv" value="20.0" />

要总结检查的内容,您可以使用以下内容:

var sum = 0;
$('input[name="alloInv"]').filter(':checked').each(function() {
    sum += parseFloat(this.value);
});
alert(sum);
于 2012-12-03T21:56:13.047 回答