我正在使用带有复选框的Ultrawebtree
如果选中或取消选中父节点,则随后应基于父节点的检查状态来选中或取消选中所有子节点。我知道这可以通过使用javascript遍历所有节点项来完成,但是当有100个子节点时,同样存在性能问题
因此,有什么方法可以通过单行语句来设置所有childnode check属性的属性(最好使用JQuery)
就像是
$(#treeid).siblings.attr("checked", false) //etc (I am sure this line of code won't work)
所以我的要求是用JQuery语句替换递归调用树节点进行检查/取消检查的javascript方法
我尝试如下使用setChecked方法
$("#treeid").setChecked(false)
但似乎没有用..
最佳答案
attr
方法的增变器版本很高兴能够一次处理多个元素,只需提供一个选择器或功能链,即可为您提供所需的元素,然后调用.attr('checked', 'checked')
对其进行检查或.removeAttr('checked')
取消选中它们。
这是一个简单的演示:
<input type="checkbox">
<input type="checkbox">
<input type="checkbox">
<hr>
<button id="check">Check</button>
<button id="uncheck">Uncheck</button>
和:
$('#check').click(function() {
$(':checkbox').attr('checked', 'checked');
});
$('#uncheck').click(function() {
$(':checkbox').removeAttr('checked');
});
实时版本:http://jsfiddle.net/ambiguous/FhnbJ/1/