Javascript 获取div中所有选中复选框的id
我试图在div中动态附加复选框 我需要一个javascript函数来执行以下操作: 当我选中复选框时:将其id添加到数组中。 当我取消选中复选框时:从该数组中删除id。 这就是我到目前为止所做的:Javascript 获取div中所有选中复选框的id,javascript,jquery,Javascript,Jquery,我试图在div中动态附加复选框 我需要一个javascript函数来执行以下操作: 当我选中复选框时:将其id添加到数组中。 当我取消选中复选框时:从该数组中删除id。 这就是我到目前为止所做的: var chkArray = []; $(".Checked:checked").each(function () { chkArray.push($(this).attr("id")); }); var selected; selected = chkArray.join(',') + ",
var chkArray = [];
$(".Checked:checked").each(function () {
chkArray.push($(this).attr("id"));
});
var selected;
selected = chkArray.join(',') + ",";
if (selected.length > 1) {
return chkArray;
}
我不知道你为什么要在最后加入这个阵营,所以我没有把它包括在内。但这里有一个基本方法。map将在复选框数组上迭代,并仅在选中当前元素时返回其id。$。map然后将返回的值存储在新数组chkArray中:
取而代之的是,在提交表单id时,检查所有复选框都是这样选中的吗
$("#formid input:checkbox:checked").each(function() {
var chkArray = [];
chkArray.push($(this).id());
});
这应该和你描述的一样
var checkboxes = $("input[type=checkbox]");
var r = [];
checkboxes.on("change",function(e){
if(!e.target.id){
return;
}
if(e.target.checked){
r.push(e.target.id);
}
else{
var index = r.indexOf(e.target.id)
if(~index){
r.splice(index, 1);
}
}
console.log(r);
});
这就是我要做的:
var checkedArray = [];
$(":checkbox").change(function(){
if((this).checked){
checkedArray.push(this.id);
}
else{
checkedArray.splice(checkedArray.indexOf(this.id), 1);
}
//you can call your function here if you need to act on this.
});
我测试了George的JSFIDLE,但无法使其正常工作,但编辑了他的代码并使其正常工作。您可以试试这是工作
$('#PostAlert').click(function GetID() {
$checkbox = $('.CheckBxMSG');
var chkArray = [];
chkArray = $.map($checkbox, function (el) {
if (el.checked) { return el.id };
});
alert(chkArray);
})
请发布您的HTMLD您是否在div或复选框中选中了该类?在代码中,您正在从数组中创建一个字符串,以检查数组中是否有任何内容。为什么不改为检查数组的长度呢?至少回复试图帮助您的人是一种常见的礼貌。我还注意到,你问了一些问题,但没有接受任何答案,即使它们看起来有效。请记住接受对你有帮助的答案。我喜欢这个优雅的解决方案。顺便说一句,OP的一个注意事项——默认情况下已经处理了选中/取消选中的事情,所以您只需要在单击或更改复选框时,遍历复选框数组并返回被选中的复选框的ID,就这么简单。
$('#PostAlert').click(function GetID() {
$checkbox = $('.CheckBxMSG');
var chkArray = [];
chkArray = $.map($checkbox, function (el) {
if (el.checked) { return el.id };
});
alert(chkArray);
})