Javascript 返回:选中值为()的复选框
我有一组复选框,所以我在变量中分配了每一组Javascript 返回:选中值为()的复选框,javascript,jquery,html,checkbox,Javascript,Jquery,Html,Checkbox,我有一组复选框,所以我在变量中分配了每一组 var $set1 = $('.suppliers'), $set2 = $('.products'), $set3 = $('.customer')//etc... 然后在我的代码中的某个地方,我想将每个集合:选中的值放入一个数组中: var set1Arr = []; $set1.is(':checked').each(function() { set1Arr.push($(this).val()); }); 但并没有返回任何内容,我也
var $set1 = $('.suppliers'), $set2 = $('.products'), $set3 = $('.customer')//etc...
然后在我的代码中的某个地方,我想将每个集合:选中的值放入一个数组中:
var set1Arr = [];
$set1.is(':checked').each(function() {
set1Arr.push($(this).val());
});
但并没有返回任何内容,我也进行了调试,在控制台上显示该对象并没有“each”方法。
我尝试使用not(“:checked”),它工作正常,返回了未检查的值。您需要使用.filter()
或者更好
var set1Arr = $set1.filter(':checked').map(function() {
return this.value
}).get();
使用过滤器(':checked')
not()
不是is()
的对立面,而是!。is()
。另一方面,filter()
与not()
相反
你只是误解了这两种方法的工作原理
is()
检查当前元素集中是否有一个元素与选择器匹配,并返回一个布尔值:
if($('input[type="checkbox"]').is(':checked')){
//if at least one checkbox is checked do something...
}
not()
$set1.each(function() {
if($(this).is(':checked'))
set1Arr.push($(this).val());
});
用于创建数组
var set1Arr = $set1.filter(':checked').map(function() {
return this.value;
}).get();
返回布尔值。请尝试以下操作:
$set1.each(function() {
if($(this).is(':checked')){
set1Arr.push($(this).val());
}
});
var checkboxValue = $(this).prop('checked');
或
$(this).is(':checked'); //return boolean
$set1.filter(':checked')。每个(…)
,我都看到了OK,所以它们是不同的方法,这是一个很好的解释。
$(this).is(':checked'); //return boolean