获取选中的复选框值

时间:2011-05-19 13:51:43

标签: jquery

我的表中有复选框。复选框的CSS是GridCheckBox,我想将复选框工具提示读入一个数组,分开。

我正在使用此功能。但这没有得到检查项目。但正确获取未经检查的项目。

这很好用

var titles = [];
$('#ListGrid .GridCheckBox').each(function() {
    if ($(this).attr('title')) {
        titles.push($(this).attr('title'));
    }
});

这不起作用(已检查项目)

var titles = [];
$('#ListGrid .GridCheckBox:checked').each(function() {
    if ($(this).attr('title')) {
        titles.push($(this).attr('title'));
    }
});

3 个答案:

答案 0 :(得分:1)

另一种方法是在这个例子中使用jQuery $ .map()我按名称获取所有选择框。例如:

var titles = $.map($("input[name='name_of_checkboxes']:checked"),function(a){return a.title;});

Shuld返回一个包含所选 - 选择框标题的数组。

修改

要获得没有选择的选择框,您可以使用此

  var not_selected = $.map($("input[name='name_of_checkboxes']:not(:checked)"),function(a){return a.title;});

<强> HTML:

<input type="checkbox" name="name_of_checkboxes" checked="checked" title="1" />
<input type="checkbox" name="name_of_checkboxes" title="2" />
<input type="checkbox" name="name_of_checkboxes" checked="checked" title="3" />
<input type="checkbox" name="name_of_checkboxes" title="4"/>

超过

答案 1 :(得分:0)

要尝试消除任何错误,并为了提高性能,请尝试以下方法:

$('#ListGrid .GridCheckBox').filter(':checked').each( ..

因为:checked is a jQuery extension它的效果不如匹配对象的本地浏览器方法。

答案 2 :(得分:0)

因为它不起作用。您申请的“.GridCheckBox”类在父“span”上,而不是“checkbox input”本身!

你可以这样做:

$('#ListGrid .GridCheckBox').each(function() {
var target = $(this);
if (target.find("input:checkbox").is(":checked")) {
    titles.push(target.attr('title'));
}});

假设一个span.GridCheckBox只包含一个复选框输入。