如何使用javascript / jquery获取已检查和未选中的复选框值

时间:2014-12-03 06:52:13

标签: javascript jquery html arrays checkbox

如何使用javascript / jquery在数组中检查和取消选中复选框值。

我有一个复选框列表     下面是示例代码。

<input type="checkbox" class="chkCountry" value="1" checked="checked" />India    
<input type="checkbox" class="chkCountry" value="4" checked="checked" />China     
<input type="checkbox" class="chkCountry" value="2"/>Pakistan    
<input type="checkbox" class="chkCountry" value="3"/>Japan     

这里我想获取另一个数组中未检查的数组中的已检查值。

如果我想再取消选中已检查的值(这里是印度和中国),我想获得另一个数组中的值(1,4)。

3 个答案:

答案 0 :(得分:2)

您可以使用.map()将jQuery对象集转换为类似

的数组
var $checks = $('.chkCountry');

var checked = $checks.filter(':checked').map(function () {
    return this.value;
}).get();
var unchecked = $checks.not(':checked').map(function () {
    return this.value;
}).get();

答案 1 :(得分:0)

要检查:

arrchecked = $('.chkCountry').map(function() {
    if(this.checked)
     return this.value;
}).get();
arrunchecked = $('.chkCountry').map(function() {
    if(!this.checked)
     return this.value;
}).get();

<强> Working Demo

答案 2 :(得分:0)

您可以使用:

var checked=[], unchecked=[];

$('.chkCountry').change(function() {
     if(this.checked){
          checked.push(this.value);
          unchecked.splice(this.value, 1);
     }else{
          unchecked.push(this.value);
          checked.splice(this.value, 1);
     }
}).change();

如果您需要使用取消选中更新数组,我说明了一个.splice()方法来删除元素。