【发布时间】:2016-01-06 14:58:36
【问题描述】:
如果只有一个子节点选中,如何使树视图中的父节点选中,如果所有子节点也未选中,则取消选中。
我正在使用这个脚本
<script type="text/javascript">
$(function () {
$(".MyTreeView").find(":checkbox").change(function () {
//check or uncheck childs
var nextele = $(this).closest("table").next()[0];
if (nextele&&nextele.tagName == "DIV")
{
$(nextele).find(":checkbox").prop("checked", $(this).prop("checked"));
}
//check nodes all with the recursive method
CheckChildNodes($(".MyTreeView").find(":checkbox").first());
});
//method check filial nodes
function CheckChildNodes(Parentnode)
{
var nextele = $(Parentnode).closest("table").next()[0];
if (nextele && nextele.tagName == "DIV") {
$(nextele).find(":checkbox").each(function () {
CheckChildNodes($(this));
});
if ($(nextele).find("input:checked").length == 0) {
$(Parentnode).removeAttr("checked");
}
if ($(nextele).find("input:checked").length > 0) {
$(Parentnode).prop("checked", "checked");
}
}
else { return; }
}
})
</script>
但它只适用于第一个节点,我想将它应用于所有其他节点。 这是我的测试页面的链接 http://72.41.52.131/erp/Default4.aspx
【问题讨论】:
-
这是一些非常讨厌的 HTML,你能改变它吗?如果你有一个良好的结构和一些逻辑,这个脚本可能会容易得多。
-
我正在使用 asp.net 控件树视图,我从这个链接尝试了 jquery:forums.asp.net/t/…