使用jQuery获取复选框列表值

Kri*_*s-I 34 javascript jquery

在div中,我有一些复选框.我想当我按下按钮时,选中所有复选框的名称.你能告诉我怎么做吗?

<div id="MyDiv">
....
<td><%= Html.CheckBox("need_" + item.Id.ToString())%></td>
...
</div>
Run Code Online (Sandbox Code Playgroud)

谢谢,

TM.*_*TM. 75

$(document).ready(function() {
    $('#someButton').click(function() {
        var names = [];
        $('#MyDiv input:checked').each(function() {
            names.push(this.name);
        });
        // now names contains all of the names of checked checkboxes
        // do something with it
    });
});
Run Code Online (Sandbox Code Playgroud)


Jos*_*ier 9

既然没人提到这个......

如果你想要的只是一个值数组,那么更容易的选择就是使用该.map()方法.只记得调用.get()将jQuery对象转换为数组:

这里的例子

var names = $('.parent input:checked').map(function () {
    return this.name;
}).get();

console.log(names);
Run Code Online (Sandbox Code Playgroud)

var names = $('.parent input:checked').map(function () {
    return this.name;
}).get();

console.log(names);
Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="parent">
    <input type="checkbox" name="name1" />
    <input type="checkbox" name="name2" />
    <input type="checkbox" name="name3" checked="checked" />
    <input type="checkbox" name="name4" checked="checked" />
    <input type="checkbox" name="name5" />
</div>
Run Code Online (Sandbox Code Playgroud)

纯JavaScript:

这里的例子

var elements = document.querySelectorAll('.parent input:checked');
var names = Array.prototype.map.call(elements, function(el, i) {
    return el.name;
});

console.log(names);
Run Code Online (Sandbox Code Playgroud)

var elements = document.querySelectorAll('.parent input:checked');
var names = Array.prototype.map.call(elements, function(el, i){
    return el.name;
});

console.log(names);
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
    <input type="checkbox" name="name1" />
    <input type="checkbox" name="name2" />
    <input type="checkbox" name="name3" checked="checked" />
    <input type="checkbox" name="name4" checked="checked" />
    <input type="checkbox" name="name5" />
</div>
Run Code Online (Sandbox Code Playgroud)