选中所有子复选框,选中它们并保存其值

kor*_*s59 6 html javascript jquery

我有可嵌套列表和复选框,我需要工作检查父复选框使所有子项检查并将子值保存到数组中.

当检查父级时,我已经弄清楚所有子复选框的检查?但我无法同时保存他们的价值观.

HTML

<ul>
    <li class="main-parent">                                 
        <input class="main-checkbox" type="checkbox" value="id">   
        <ul>
            <li>
                <input class="sub-checkbox" type="checkbox" value="1">
            </li>
            <li>
                <input class="sub-checkbox" type="checkbox" value="2">
            </li>
            <li>
                <input class="sub-checkbox" type="checkbox" value="3">
            </li>
         </ul>
     </li>
</ul>
Run Code Online (Sandbox Code Playgroud)

JQuery的

$('input:checkbox').change(function () {
    var array=[];
    if(type === "main-checkbox") {
        var parent = $(this).closest('.dd-item');

        if('$(parent).find('.sub-checkbox').is(":checked")) {
         array.push($(parent).find('.sub-checkbox').prop('checked',this.checked).val());
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

这一个返回空数组,没有保存.有可能这样做吗?

小智 2

尝试这个:

$(function () {
    $('input:checkbox.main-checkbox').click(function () {
        var array = [];
        var parent = $(this).closest('.main-parent');
        //check or uncheck sub-checkbox
        $(parent).find('.sub-checkbox').prop("checked", $(this).prop("checked"))
        //push checked sub-checkbox value to array
        $(parent).find('.sub-checkbox:checked').each(function () {
            array.push($(this).val());
        })
    });
})
Run Code Online (Sandbox Code Playgroud)