如何检查jquery未隐藏的复选框

时间:2018-07-12 07:50:50

标签: jquery html

我有这些复选框

    <input type='checkbox' class="catagory region-1"/> 
        <ul>
            <li>1
                <input type='checkbox' class="catagory region-1" />
                <ul>
                    <li>2
                        <input type='checkbox' class="catagory region-1" />
                    </li>
                </ul>
            </li>
           <li>1
                <input type='checkbox' class="catagory region-1" />
                <ul>
                    <li>2
                        <input type='checkbox' class="catagory region-1" />
                    </li>
                    <li>2
                        <input type='checkbox' class="catagory region-2" />
                    </li>
                    <li>2
                        <input type='checkbox' class="catagory region-2" />
                    </li>
                </ul>
            </li>
        </ul>

   

$(function () {
    $("input[type='checkbox']").change(function () {
        $(this).siblings('ul')
            .find("input[type='checkbox']")
            .prop('checked', this.checked);
    });
});
li ul {
    padding-left: 25px;
    border: none;
    display:block;
}
ul {
    border: 2px solid blue;
    padding: 5px;
    margin:5px;
    display:inline-block;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

我已经编写了一个jquery函数来使用类filter函数按类别过滤复选框,将显示已过滤的一个,将其他隐藏。因此,我想编写一个函数来检查此后当前未隐藏的所有复选框。

2 个答案:

答案 0 :(得分:1)

在过滤您的复选框后调用它:

$('input:checkbox:visible').prop('checked', true);

这将选中所有可见的复选框。

您可以添加“属性等于”选择器:

$("input:checkbox:visible[thetype='customcheck']").prop('checked', true);

答案 1 :(得分:0)

如果我正确理解了您的问题,这应该可以解决问题:

$("input:checkbox").filter(":visible").prop('checked', true);
相关问题