如果只检查其子节点中的父节点,则如何在树视图中创建父节点,如果所有子节点都未选中,则取消选中

时间:2015-10-08 20:09:20

标签: jquery tree nodes checked

如果只检查其子节点中的父节点,则检查如何在树视图中创建父节点,如果也取消选中所有子节点,则取消选中。

我正在使用这个脚本

 <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

1 个答案:

答案 0 :(得分:0)

我解决了我的问题 我用这个答案,它工作正常 [child nodes in treeview control automatically checked when parent node checked

谢谢