我使用此代碼來檢查樹狀視圖中的複選框。CheckAll CheckBox Jquery
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/
這個效果很好。但是,如果任何一個子節點未被選中,那麼根/子根將被取消選中。我怎樣才能做到這一點?
真的應該取消選中根嗎?我不這麼認爲。這意味着沒有一個孩子沒有被選中。 如果所有的孩子都沒有選中,那麼根目錄也應該取消選中。但之前沒有。 這是我的2美分。 –
爲了澄清,如果我點擊根,然後點擊Sub子1,Child 1和Root是否被取消選中? – mattytommo