如何使用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)。
答案 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()
方法来删除元素。