Javascript 选中和未选中复选框值的数组

Javascript 选中和未选中复选框值的数组,javascript,jquery,html,arrays,checkbox,Javascript,Jquery,Html,Arrays,Checkbox,我有这个函数,当我选中一个或多个复选框时,函数加载选中复选框的值…但是当我选中一个或多个复选框时,函数显示一个空数组 这就是功能: $(document).ready(function () { $('input[type="checkbox"]').change(function () { var mycheck = new Array(); if ($(this).is(':checked')) { $("#line-chec

我有这个函数,当我选中一个或多个复选框时,函数加载选中复选框的值…但是当我选中一个或多个复选框时,函数显示一个空数组

这就是功能:

$(document).ready(function () {
   $('input[type="checkbox"]').change(function () {
         var mycheck = new Array();
         if ($(this).is(':checked')) {
            $("#line-checkbox-1:checked").each(function () {
                mycheck.push($(this).val());//aggiungo value del checked
            });
             alert(mycheck)


        } else {
            var itemtoRemove = $(this);
            mycheck.splice($.inArray(itemtoRemove, mycheck), 1); //rimuovo il value del dechecked

            alert(mycheck);


        }

    });
这是复选框的HTML:

    <div class="col-lg-3">
 <input tabindex="17" id="line-checkbox-1" type="checkbox" name="servizi" value="3">

 </div>

试试这个简单的脚本,它适合您:

HTML

<input type="checkbox" name="options[]" value="1" />
<input type="checkbox" name="options[]" value="2" />
<input type="checkbox" name="options[]" value="3" />
<input type="checkbox" name="options[]" value="4" />
<input type="checkbox" name="options[]" value="5" />

这可能是因为您使用id来引用复选框,并且每次用户更改复选框时,您都从头开始创建数组。每次更改复选框时,都应重新检查列表。这意味着您不需要这个if.(if($(this).is(“:checked”))


如果我正确理解了您试图执行的操作,这里有一个示例

instread of$(this)在else语句中使用$(this).val()。no还与.val()一起使用不起作用您只有一个复选框,那么为什么要使用循环。如果存在多个复选框,则id应该是唯一的。没有,我有许多复选框,例如,我只发布了一个复选框。只需使用此代码,无需使用if-else条件,因为您每次都在创建新数组,并使用id类instread
$(document).ready(function () 
{
   $('input[type="checkbox"]').change(function () 
   {
        var arr = $.map($('input:checkbox:checked'), function(e,i) {
            return +e.value;
        });
        alert(arr);
    });
});
$('.checkboxes input[type="checkbox"]').change(function () {
    var mycheck = new Array();

    $(".checkboxes input[type='checkbox']:checked").each(function () {
        if ($(this).is(':checked')) {
            mycheck.push($(this).attr("id") + ": is " + $(this).val()); //aggiungo value del checked
        }
    });
    alert(mycheck);
});