Javascript 选中/取消选中所有子复选框jquery引导
关于这个fiddle(),我有与这个fiddle相同的功能,即选中/取消选中所有子复选框,它现在运行良好 但是,当我在我的表单和在bootstrap下创建的表单中使用此脚本时,它会将其他DIV和SPAN添加到复选框中,并且此小提琴脚本对bootstrap复选框不起更多作用。`请帮助我选中/取消选中所有子框Javascript 选中/取消选中所有子复选框jquery引导,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,关于这个fiddle(),我有与这个fiddle相同的功能,即选中/取消选中所有子复选框,它现在运行良好 但是,当我在我的表单和在bootstrap下创建的表单中使用此脚本时,它会将其他DIV和SPAN添加到复选框中,并且此小提琴脚本对bootstrap复选框不起更多作用。`请帮助我选中/取消选中所有子框 $('li:checkbox')。在('click',函数(){ var$chk=$(此), $li=$chk.closest('li'), $ul$家长; 如果($li.has('ul')
$('li:checkbox')。在('click',函数(){
var$chk=$(此),
$li=$chk.closest('li'),
$ul$家长;
如果($li.has('ul')){
$li.find(“:checkbox”).not(this.prop('checked',this.checked)
}
做{
$ul=$li.parent();
$parent=$ul.sibbines(':checkbox');
如果($chk.is(':checked')){
$parent.prop('checked',$ul.has(':复选框:未(:checked))。长度==0)
}否则{
$parent.prop('checked',false)
}
$chk=$parent;
$li=$chk.closest('li');
}而($ul.is(':not(.someclass));
});$('li:checkbox')。在('click',函数(){
var$chk=$(此),
$li=$chk.closest('li'),
$ul$家长;
如果($li.has('ul')){
$li.find(“:checkbox”).not(this.prop('checked',this.checked)
}
做{
$ul=$li.parent();
$parent=$ul.sibbines(':checkbox');
如果($chk.is(':checked')){
$parent.prop('checked',$ul.has(':复选框:未(:checked))。长度==0)
}否则{
$parent.prop('checked',false)
}
$chk=$parent;
$li=$chk.closest('li');
}而($ul.is(':not(.someclass));
});代码>
-
管理
-
主席:
-
经理1
-
助理经理1
-
助理经理2
-
助理经理3
-
经理2
-
经理3
-
副总裁
-
经理4
-
经理5
-
经理6
您的引导版本不起作用,因为复选框
项相对于用于搜索项的ul
元素($ul=$li.parent();
)位于不同的位置。您的引导版本:
<div class="checker">
<span class="checked">
<input type="checkbox">
</span>
</div>President
<ul>...
do {
$ul = $li.parent();
//$parent = $ul.siblings(':checkbox'); old code
$parent = $ul.siblings('.checker');
if ($chk.is(':checked')) {
$parent.find(':checkbox').prop('checked', $ul.has(':checkbox:not(:checked)').length == 0)
} else {
$parent.find(':checkbox').prop('checked', false)
}
$chk = $parent;
$li = $chk.closest('li');
} while ($ul.is(':not(.someclass)'));
有关工作样本,请访问
顺便说一句,您最初的Fiddle示例代码很酷,它以很酷的方式使用递归循环来获取父元素:-)
do {
$ul = $li.parent();
//$parent = $ul.siblings(':checkbox'); old code
$parent = $ul.siblings('.checker');
if ($chk.is(':checked')) {
$parent.find(':checkbox').prop('checked', $ul.has(':checkbox:not(:checked)').length == 0)
} else {
$parent.find(':checkbox').prop('checked', false)
}
$chk = $parent;
$li = $chk.closest('li');
} while ($ul.is(':not(.someclass)'));