javascript - 复选框标签的总和值

标签 javascript jquery checkbox

我有一些带有标签的复选框,如 1 some text 我想从选中的复选框的标签中获取数字并将它们添加在一起。我试图做类似下面的事情,但它没有给我任何东西。

var total = 0;

$('input:checked').each(function () {
    total += parseInt($("label[for='" + this.id + "']").text());
});

这是一个复选框示例

<label><input type="checkbox" id="enbapicks-1" name="ENBApicks[1]" value="1" checked> 1 Golden State</label>
<label><input type="checkbox" id="enbapicks-5" name="ENBApicks[5]" value="1" checked> 5 Memphis</label>

最佳答案

您的 label 没有 for 属性,这就是为什么 $("label[for='"+ this.id + "']") 返回空白,因此 .text() 返回空字符串。

您应该这样指定:

<input type="checkbox" id="enbapicks-1" name="ENBApicks[1]" value="1" checked>
<label for="enbapicks-1">1 Golden State</label>

如果您无法更改 HTML,您可以使用 parent() 方法从 input 获取 label:

<label><input type="checkbox" value="1" checked>1 Golden State</label>

$('input').parent().text() // "1 Golden State"

或者,您可以将数字设置为 inputvalue 属性,然后使用 val() 方法从 中获取它输入 元素。

<input type="checkbox" value="3">

$('input').val() // "3"

As long as you could, always specify for attribute for meaningful label elements.

关于javascript - 复选框标签的总和值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30722587/

相关文章:

javascript - 在 jQuery 中使用表中的升序和降序

javascript - 动态选择表单中的值

html - Jquery Ajax 自动刷新 <div>

jquery - 将值从剑道复选框转移到另一个

JavaScript 弹出 : Invoking in JQuery

Javascript臭名昭著的循环问题?

javascript - 如何使用js实现mousedown后的mousemove

jquery 选中/取消选中复选框

javascript - 如何在响应式(Reactive)表单的 formGroup 中以编程方式检查多个复选框?

javascript - HTML5 应用程序缓存以编程方式删除