Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取div中所有选中复选框的id_Javascript_Jquery - Fatal编程技术网

Javascript 获取div中所有选中复选框的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(',') + ",

我试图在div中动态附加复选框

我需要一个javascript函数来执行以下操作:

当我选中复选框时:将其id添加到数组中。 当我取消选中复选框时:从该数组中删除id。 这就是我到目前为止所做的:

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);
        })