Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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 如果未在jquery中选中复选框,则删除空值_Javascript_Jquery_Arrays - Fatal编程技术网

Javascript 如果未在jquery中选中复选框,则删除空值

Javascript 如果未在jquery中选中复选框,则删除空值,javascript,jquery,arrays,Javascript,Jquery,Arrays,当我选中多个复选框(比如1、3、5)时,它将返回1、3、5 我想删除数组中存在的空值 在if条件内移动i++ function modChkIdArr() { var modchkid = new Array(); var i = 0; $("input[name='modChkId[]']").each(function() { if ($(this).is(":checked")) { modchkid[i] = $(thi

当我选中多个复选框(比如1、3、5)时,它将返回1、3、5


我想删除数组中存在的空值

在if条件内移动
i++

function modChkIdArr() {
    var modchkid = new Array();
    var i = 0;

    $("input[name='modChkId[]']").each(function() {

        if ($(this).is(":checked")) {
            modchkid[i] = $(this).val();
        }
        i++;
    });

    $('#create_module').val(modchkid);
}

var moduleArr = $('#create_module').val().split(",");
alert(moduleArr);

您正在使用jQuery,可以用它做很多事情

function modChkIdArr() {
  var modchkid = new Array();
  var i = 0;
  $("input[name='modChkId[]']").each(function() {
    if ($(this).is(":checked")) {
      modchkid[i] = $(this).val();
      i++;
  //--^------   
    }
  });
}
var moduleArr = $('#create_module').val().split(",");
alert(moduleArr);

问题在于
i
,无论是否选中复选框,您都在更新它

function modChkIdArr() {
    //Create array using .map function.
    var checkedValues = $("input[name='modChkId[]']:checked").map(function() {
        return $(this).val();
    }).get();
    $('#create_module').val(checkedValues);
}
或者,您也可以尝试以下方法:

if ($(this).is(":checked")) {
   modchkid[i] = $(this).val();
   i ++;//move here
}
//i++; //here
您可以减少代码,请尝试
:选中的
选择器和
映射()

用道具试一试

function modChkIdArr() {
    var modchkid = $("input[name='modChkId[]']:checked").map(function() {
       return this.value; //get checkbox value
    }).get(); //get array
    $('#create_module').val(modchkid.join(',')); //csv
}

看看我补充的答案。
function modChkIdArr() {
    var modchkid = $("input[name='modChkId[]']:checked").map(function() {
       return this.value; //get checkbox value
    }).get(); //get array
    $('#create_module').val(modchkid.join(',')); //csv
}
function modChkIdArr() {
  var modchkid = new Array();
  var i = 0;
  $("input[name='modChkId[]']").each(function() {
    if ($(this).prop('checked') == true) {
      modchkid[i] = $(this).val();
      i++;
  //--^------   
    }
  });
}
var moduleArr = $('#create_module').val().split(",");
alert(moduleArr);