我用这个代码检查树观中的复选框
HTML:
<div id="tree">
<ul>
<li>
<input type="checkbox"/> Root
<ul>
<li>
<input type="checkbox"/> Child 1
<ul>
<li><input type="checkbox"/> Subchild 1</li>
<li><input type="checkbox"/> Subchild 2</li>
<li><input type="checkbox"/> Subchild 3</li>
</ul>
</li>
<li>
<input type="checkbox"/> Child 2
<ul>
<li><input type="checkbox"/> Subchild 1</li>
<li><input type="checkbox"/> Subchild 2</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
JavaScript:
$(document).ready(function() {
$("#tree input:checkbox").change(function() {
var val = $(this).attr("checked");
$(this).parent().find("input:checkbox").each(function() {
if (val) {
$(this).attr("checked", "checked");
} else {
$(this).removeAttr("checked");
}
});
});
});
JSFiddle: http://jsfiddle.net/jracq/
这样很好。 但是, 如果子节点中的任何一个节点没有被控制的话, 那么根/ 子根就会被控制住。 我该怎么做呢?