【发布时间】:2014-04-16 12:11:06
【问题描述】:
<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>
上面是html代码,其中有一棵树,有父节点和子节点。
这很好用。但是如果所有子节点都被检查,那么根/父节点必须被自动检查。
如果所有子节点都未选中,则必须自动取消选中根/父节点。 我如何做到这一点?
jQuery
$(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");
}
});
});
});
【问题讨论】: