我有这些复选框
<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函数按类别过滤复选框,将显示已过滤的一个,将其他隐藏。因此,我想编写一个函数来检查此后当前未隐藏的所有复选框。
答案 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);