Ztree

作者: 啊啊啊阿南 | 来源:发表于2018-03-30 11:32 被阅读0次

    一、ztree中如何判断当前节点是唯一的子节点

    • 方法一
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    var sNodes = treeObj.getSelectedNodes();
    if (sNodes.children.length == 1) {
          treeObj .removeNode(sNodes[0].getParentNode());
         treeObj .removeNode(sNodes[0]);       
    }
    
    • 方法二
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    var sNodes = treeObj.getSelectedNodes();
    if (sNodes.length > 0) {
          //查看当前被选中的节点是否是同级节点中的第一个节点
         // 查看当前被选中的节点是否是同级节点中的最后一个节点
         if(sNodes[0].isFirstNode && sNodes[0].isLastNode){
             treeObj .removeNode(sNodes[0].getParentNode());
             treeObj .removeNode(sNodes[0]);             
             console.log("该节点是当前父节点下的唯一子节点");
          };
    }
    

    二、获取全部的子节点

    getNodes() 只能获取当前节点下的直接子节点
    通过zTree官方API的方法获取得到的是一个包含所有子节点的根节点(子节点都处于 children 属性下)

    • 方法一: 通过递归的方式(此处就不提及了)
    • 方法二:通过zTreet提供的方法
        var treeObj = $.fn.zTree.getZTreeObj(”tree“);
        var node = treeObj.getNodes();
        var nodes = treeObj.transformToArray(node);
    
    //获取根节点下的所有子节点
    var rootChild = treeObj.getNodes()[0].children;
    var allNodesNoRoot = treeObj.transformToArray(rootChild);
    

    注意: 通过transformToArray方法获取的父节点对象中仍然包含children属性, 如果将得到的节点数组通过init方法刷新树数据会出现节点重复的现象。

    removeChildNodes() 清空某父节点的子节点。

    1、清空子节点后,父节点会自动变为叶子节点,如需要父节点保持父节点状态,请设置 setting.data.keep.parent 属性。
    2、请勿用此方法清空根节点,如果需要清空根节点,直接初始化 zTree,并且设置初始节点为 null 即可。
    3、此方法不会触发任何事件回调函数。

    //清空选中的第一个节点的子节点
    var treeObj = $.fn.zTree.getZTreeObj("tree");
    var nodes = treeObj.getSelectedNodes();
    if (nodes && nodes.length>0) {
        treeObj.removeChildNodes(nodes[0]);
    }
    

    更新节点信息

    treeObj.updateNode(node);

    删除节点

    treeObj.removeNode(node);

    选择节点

    treeObjselectNode(node);

    相关文章

      网友评论

          本文标题:Ztree

          本文链接:https://www.haomeiwen.com/subject/pgvgqftx.html