Javascript 获取jQuery中数组中复选框列表的值
我有一个复选框列表,当页面加载时,所有复选框都被预先选中 首先,我想读取所有复选框(选中)值并存储在全局数组中 稍后,每当用户单击任何复选框(未选中/选中),我都希望仅使用选中复选框的值更新数组 所有这些我都想在jQuery中完成Javascript 获取jQuery中数组中复选框列表的值,javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个复选框列表,当页面加载时,所有复选框都被预先选中 首先,我想读取所有复选框(选中)值并存储在全局数组中 稍后,每当用户单击任何复选框(未选中/选中),我都希望仅使用选中复选框的值更新数组 所有这些我都想在jQuery中完成 谢谢我假设您想要的是选中项目的名称或id,因为复选框值是布尔值 var checked = {}; $(':input[type="checkbox"]').each(function() { var name= this.name; var val
谢谢我假设您想要的是选中项目的名称或id,因为复选框值是布尔值
var checked = {};
$(':input[type="checkbox"]').each(function() {
var name= this.name;
var val = this.checked;
if (val) {
checked[name] = val;
}
}).on('change', function() {
var name = this.name;
var val = this.checked;
if (val) {
checked[name] = val;
} else {
delete checked[name];
}
});
然后,选中的对象将包含键,并且只有与选中项目对应的键才会出现在该对象中
在进行演示您的意思是这样的吗
var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "click", function(){
arrCheckboxes = $(checkboxSelector).map(function() {
return this.checked;
}).get();
});
(也许您应该将$(“body”)更改为更精确的容器)
如果您想要一个包含名称为(…或id或元素)的对象的数组。。。您可以这样做:
var arrCheckboxes;
var checkboxSelector = "input[type='checkbox']";
$("body").delegate(checkboxSelector , "change", function(){
arrCheckboxes = $(checkboxSelector).map(function() {
return { name: this.name, val: this.checked };
}).get();
});
var someGlobalArray=新数组;
$(“.chk”)。单击(函数(){
someGlobalArray=[];
$('.chk:checked')。每个(函数(){
someGlobalArray.push($(this.val());
});
控制台日志(someGlobalArray);
});
我不知道你为什么要把它放到一个数组中,你有一个控件数组。。。它已经有效地存在,无需重复工作。您在任何答案或注释中找到解决方案了吗?我有以下复选框ul>li>input$(“ul”)。委托(…如果页面上有多个列表,则向ul和选择器添加一个类。当您单击复选框时,它将跳转到容器(在本例中为)。这样,您可以绑定一个事件,而不是每个复选框绑定一个事件。这很好,再次选中复选框时如何更新。我有一个函数updateCategoryList(){//g_categoryList=[];$('.g_chkCat:checked')。每个(函数(){g_categoryList.push($(This).val();});//$('#t').val(categoryList));警报(“长度:”+g_categoryList.length+“值:”+g_categoryList);}如何链接单击复选框再次调用此函数$(“.g_chkCat”)。单击(函数(){g_categoryList=[];$('.g_chkCat:checked')。每个(函数(){g_categoryList push($(this.val());});/$('#t').val(categoryList));警报(“长度:+g_categoryList length+)”+g_分类列表);}
<input type="checkbox" value="somevalue1" class="chk">
<input type="checkbox" value="somevalue2" class="chk">
<input type="checkbox" value="somevalue3" class="chk">
<input type="checkbox" value="somevalue4" class="chk">
<input type="checkbox" value="somevalue5" class="chk">
<script>
var someGlobalArray = new Array;
$(".chk").click(function() {
someGlobalArray=[];
$('.chk:checked').each(function() {
someGlobalArray.push($(this).val());
});
console.log(someGlobalArray);
});
</script>