2

我想获取多个选中复选框的 id

HTML

<input type="checkbox" class="a" id="1">1
<input type="checkbox" class="a" id="2">2
<input type="checkbox" class="a" id="3">3
<input type="checkbox" class="a" id="4">4
<input type="checkbox" class="a" id="5">5

<input type="button" value="Button" id="button">

JS:

$("#button").live('click',function(){
    var a = document.getElementsByClassName("a");
    alert(a);
    alert(a.checked);
});

JS小提琴

4

4 回答 4

4

要获得id检查的 s:

$('.a').filter(function(){
    return this.checked // Takes only checked checkboxes.
}).map(function(){
    return this.id // Makes an array which its elements are the ids.
}).get(); // Returns the array.

现场演示

请注意,根据 w3c 规范,以数字开头的 id 无效!

ID 和 NAME 标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

检查checkboxes:

live除非您的 jQuery 版本 < 1.4.4,否则不要使用

$("#containerId").on('click','#button', function(){
  $('.a').prop('checked', true);
});

现场演示

于 2012-05-29T08:57:02.477 回答
3
$("body").on("click", "#button", function(){
    var ids = $(':checkbox.a')
        .filter(':checked')
        .map(function() {
            return this.id;
        });
    console.log(ids); // an array of ids
});

演示

或者

$("body").on("click", "#button", function(){
    var ids = $(':checkbox:checked.a')
        .map(function() {
            return this.id;
        }).toArray();
    console.log(ids); // an array of ids
});

演示

或者

$("body").on("click", "#button", function(){
    var ids = $(':checkbox.a')
        .map(function() {
            if( this.checked )
                return this.id;
        }).toArray();
    console.log(ids); // an array of ids
});

演示

于 2012-05-29T08:55:36.053 回答
3

我不确定为什么每个人都发布代码来检查这些框?

我想获取多个选中复选框的 id

为此,请使用以下代码:

$("#button").click(function() {
    var selected = $(".a:checked").map(function() {
        return this.id;
    }).get();
    alert(selected.join(","));
});

示例小提琴

你也不应该使用live(). delegate()或者是更好的解决方案,但只有在页面加载后将元素添加到页面on()时才需要它们。#button

于 2012-05-29T09:00:47.563 回答
1

试试这个代码:

$("#button").live('click',function(){
    $("input:checkbox").each(function()
    {
        if($(this).is(':checked')){
            alert( $(this).attr('id') )
        }
    });
});

希望对你有帮助

于 2012-05-29T09:08:14.203 回答