精华内容
下载资源
问答
  • MySQL查询一个节点下的所有子节点

    千次阅读 2018-05-14 08:50:53
    有时候需要从一个数据点的表中查询出每个父节点下的所有子节点,包括子子节点,查出用作树或者是计算每个最父级节点所占的比重.这个时候就需要查出每个最父级节点下包含的所有子节点. 这里推荐一种比较简单的方法,...

    从别后,忆相逢,几回魂梦与君同
    有时候需要从一个数据点的表中查询出每个父节点下的所有子节点,包括子子节点,查出用作树或者是计算每个最父级节点所占的比重.这个时候就需要查出每个最父级节点下包含的所有子节点.
    这里推荐一种比较简单的方法,就是写个递归函数用作查询.如下:
    表结构:

    CREATE TABLE `tableTest` (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `p_id` int(11) DEFAULT NULL COMMENT '父级Id',
      `text` varchar(3000) DEFAULT NULL COMMENT '说明',
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=250 DEFAULT CHARSET=utf8 COMMENT='测试表';

    写一个递归函数如下:

    CREATE DEFINER=`root`@`%` FUNCTION `getChildList`(rootId INT) RETURNS varchar(1000) CHARSET utf8
        COMMENT '这个函数用来计算所有子节点id'
    BEGIN
        DECLARE sTemp VARCHAR(1000);
           DECLARE sTempChd VARCHAR(1000);
    
           SET sTemp = '$';
           SET sTempChd =cast(rootId as CHAR);
    
           WHILE sTempChd is not null DO
             SET sTemp = concat(sTemp,',',sTempChd);
             SELECT group_concat(id) INTO sTempChd FROM tableTest where FIND_IN_SET(p_id,sTempChd)>0;
           END WHILE;
           RETURN sTemp;
    END

    这个递归函数需要传一个父级ID进来,然后返回所有的子节点ID,并用逗号隔开,
    这里写图片描述

    展开全文
  • zTree获取当前节点的下子节点数

    千次阅读 2018-01-22 17:00:06
    使用zTree插件实现树形图中,需要获取当前点击的父节点的子节点数的需求,使用treeNode.children获取子节点数据集合,使用length方法获取集合长度。... /*判断是不是父节点,是的话找出子节点个数,加一
    使用zTree插件实现树形图中,需要获取当前点击的父节点的子节点数的需求,使用treeNode.children获取子节点数据集合,使用length方法获取集合长度。
    将当前节点的treeNode传入即可调用。
    
    /*查找当前节点下一级的子节点数*/
    function findNodes(treeNode)
    {
        var count;  /*判断是不是父节点,是的话找出子节点个数,加一是为了给新增节点*/  if(treeNode.isParent) { count = treeNode.children.length + 1 ;  } else { /*如果不是父节点,说明没有子节点,设置为1*/  count = 1;  } return count; }
    展开全文
  • 判断一个元素是否包含一个指定节点 这个函数时在contains()的基础上封装的,contains()不兼容火狐,特意封装了一下,以后方便用。 function isDOMContains(parentEle,ele,container){ //parentEle: 要判断节点的...

    判断一个元素是否包含一个指定节点

    这个函数时在contains()的基础上封装的,contains()不兼容火狐,特意封装了一下,以后方便用。
    function isDOMContains(parentEle,ele,container){
        //parentEle: 要判断节点的父级节点
        //ele:要判断的子节点
        //container : 二者的父级节点
        
        //如果parentEle h和ele传的值一样,那么两个节点相同
        if(parentEle == ele){
            return true
        }
        if(!ele || !ele.nodeType || ele.nodeType != 1){
            return false;
        }
        //如果浏览器支持contains
        if(parentEle.contains){
            return parentEle.contains(ele)
        }
        //火狐支持
        if(parentEle.compareDocumentPosition){
            return !!(parentEle.compareDocumentPosition(ele)&16);
        }
    
        //获取ele的父节点
        var parEle = ele.parentNode;
        while(parEle && parEle != container){
           if(parEle == parentEle){
            return true;
           }
           parEle = parEle.parentNode;
        }
        return false;
    }
    展开全文
  • DOM中的第一个和最后一个子节点

    千次阅读 2016-09-18 22:49:24
    firstChild、lastChild 获取第一个、最后一个子节点,谷歌和火狐浏览器获取的是文本节点,而IE8及之前的浏览器会忽略文本节点,获取的是第一个、最后一个子节点 firstElementChild、lastElementChild 获取第一个、...

    firstChild、lastChild 获取第一个、最后一个子节点,谷歌和火狐浏览器获取的是文本节点,而IE8及之前的浏览器会忽略文本节点,获取的是第一个、最后一个子节点

    firstElementChild、lastElementChild 获取第一个、最后一个子节点,谷歌和火狐浏览器获取的是第一个、最后一个子节点,但是IE8及之前的浏览器不支持使用

    <!DOCTYPE html>
    <html>
    <head lang="en">
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
    <ul id="ul">
        <li>111</li>
        <li>222</li>
        <li>333</li>
        <li>444</li>
    </ul>
    <script>
        var ul = document.getElementById("ul");
    //    *****************第一个子节点***********************
    //    谷歌火狐高版本浏览器获取的是文本节点,而IE8及之前的浏览器会忽略文本节点,获取的是第一个子节点
        var lis = ul.firstChild;
        console.log(lis.nodeType<span style="color:#ff0000;"><strong><span style="color:#000000;">);</span> //谷歌和火狐浏览器打印结果是 3,IE8及之前的浏览器打印的是 1
    </strong></span>//    谷歌和火狐浏览器支持使用,获取的是第一个子标签节点,会忽略文本节点,但是IE8及之前的浏览器会报错
        lis = ul.firstElementChild;
        console.log(lis.nodeType); <span style="color:#ff0000;"><strong>//谷歌和火狐浏览器打印结果是 1,IE8及之前的浏览器会报错
    </strong></span>
    //    *****************最后一个子节点***********************
    //    谷歌火狐高版本浏览器获取的是文本节点,而IE8及之前的浏览器会忽略文本节点,获取的是最后一个子节点
        lis = ul.lastChild;
        console.log(lis.nodeType); <span style="color:#ff0000;"><strong>//谷歌和火狐浏览器打印结果是 3,IE8及之前的浏览器打印的是 1
    </strong></span>//    谷歌和火狐浏览器支持使用,获取的是最后一个子标签节点,会忽略文本节点,但是IE8及之前的浏览器会报错
        lis = ul.lastElementChild;
        console.log(lis.nodeType); <strong><span style="color:#ff0000;">//谷歌和火狐浏览器打印结果是 1,IE8及之前的浏览器会报错</span></strong>
    </script>
    </body>
    </html>

    因存在兼容性的问题,因此封装兼容性的函数来获取第一个和最后一个子节点
    <script>
        /**
         * 封装兼容版本的获取第一个标签节点
         * @param element 标签节点对象
         */
        function getFirstElement(element) {
            //如果当前浏览器支持使用firstElementChild来获取第一个标签节点
            if(element.firstElementChild) {
                return element.firstElementChild;   //将获取的标签节点对象返回
            }else {//如果不支持,就得使用firstChild来获取当前标签的第一个子节点
                var ele = element.firstChild;   //先获取第一个子节点
                while(ele && ele.nodeType !== 1) {  //第一个ele是确保有这个对象,第二个就是当前的节点类型不是标签节点
                    ele = ele.nextSibling;  //如果不是标签节点,就继续获取下一个节点
                }
                // 将获取到的第一个子标签节点返回
                return ele;
            }
        }
    
        /**
         * 封装兼容版本的获取最后一个标签节点
         * @param element 标签节点对象
         * @returns {*}
         */
        function getLastElement(element) {
            //如果当前浏览器支持使用lastElementChild来获取第一个标签节点
            if(element.lastElementChild) {
                return element.lastElementChild; //将获取的标签节点对象返回
            }else {//如果不支持,就得使用lastChild来获取当前标签的第一个子节点
                var ele = element.lastChild;    //先获取第一个子节点
                while(ele && ele.nodeType !== 1) {//第一个ele是确保有这个对象,第二个就是当前的节点类型不是标签节点
                    ele = ele.previousSibling;//如果不是标签节点,就继续获取下一个节点
                }
                // 将获取到的第一个子标签节点返回
                return ele;
            }
        }
    </script>


    展开全文
  • 找到一个子节点的所有父节点

    千次阅读 2018-06-14 18:47:58
    找到一个子节点的所有父节点 标签(空格分隔): python 初衷是为了找到一个子节点的所有父节点 #!/usr/bin/env python # -*- coding:utf-8 -*- ''' @Project: EntityLink @Create Date: 下午5:23 @AuthOr: ...
  • 这个程序的功能是递归遍历xml并打印每个节点的信息,问题出现在注释的那两句话,当一个字节点没有子节点的时候,node!=NULL不起作用,程序依然进入while循环,这是怎么回事,怎么才能判断一个节点没有子节点呢?求...
  • ztree操作子节点 子节点子节点

    千次阅读 2016-12-19 20:38:21
    ztree操作子节点 子节点子节点
  • 1.获取第个子元素和子节点 获取第个子节点 : 父元素.firstChild 获取第个子元素 : 父元素.firstElementChild //body部分 <ul id="ul"> wwwwww <!-- 我是注释 --> <li>我是li标签1</...
  • Dom4j 统计子节点个数

    千次阅读 2014-09-15 17:43:17
    Dom4j 统计子节点个数 前言   最近在使用dom4j对XML进行解析的过程中,遇到一些问题,笔者在这里和大家一起分享一下。   首先,说下需要的具体要求,要求用dom4j对XML进行解析,统计每个...
  • mysql:动态查询一个树形结构表中:某一个节点的所有父节点或者子节点根据传过来的表名和关系字段名可以动态找到某个某一个节点的所有父节点或者子节点 schema_name table_name type :1、父级2、子级 self_value:...
  • js 获取子节点个数

    千次阅读 2014-02-08 14:04:37
    获取id=tr 下面td的个数js: var node = document.getElementById("tr").childNodes; for (var i = 0; i < node.length; i++) { //如果是文本节点,并且值为空,则删除该节点 if (node[i].nodeType...
  • ![图片说明]... 1、表结构就是树状结构,子节点关联父节点 2、要求就是给一个id,可以获取该id所有的父节点与子节点 3、要求是一个函数,单独的函数已经有了,求大神指点啊。。
  • 当网页被加载进了内存时,浏览器会为网页创建一个document对象,所有节点都是document对象的子节点。 Node:所有节点对象的父节点 nodeType:节点的类型 元素节点---》1  属性节点---》2  文本节点---》3 ...
  • struct BinaryTree { char value; BinaryTree* left; BinaryTree* right;...//(2)如果二叉树不为空,二叉树节点个数 = 左子树节点个数 + 右节点个数 + 1 int getNodeNums(BinaryTree* pRoot) { if(pRoo
  • Easyui Tree插件获取子节点的时候用的getChildren方法,但是这方法获取到的节点却是级联...我们只想获取目标节点的子节点,那么就我们就需要扩展我们自己的方法了。 这里我扩展了这方法(getLeafChildren):
  • 给定一个完美二叉树,其所有叶子节点都在同一层,每个父节点都有两个子节点。二叉树定义如下: struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下...
  • 最近要实现一个查看历史记录的功能。 在网上查了很多资料。 都是通过某一节点获取父节点或者获取子节点信息。 没有看到通过某一节点获取子节点以及父节点的所有信息。 很苦恼。 之后在一篇博客上看到通过某一节点...
  • 访问子结点的第一和最后项 一、firstChild 属性返回‘childNodes’数组的第一个子节点。...二、 lastChild 属性返回‘childNodes’数组的最后一个子节点。如果选定的节点没有子节点,则该属性返回
  • (1)用原生js创建一个dom元素【必须项】 var node=document.createElement(&amp;amp;quot;div&amp;amp;quot;); (2)设置属性 node.setAttribute(&amp;amp;quot;class&amp;amp;quot;,&amp;amp...
  • 题目:已知棵完全二叉树,求其节点的个数要求:时间复杂度低于O(N),N为这棵树的节点个数完全二叉树的概念就不多叙述了。讲讲思路:题目的要求是时间复杂度低于O(N),所以遍历的方式就不用考虑了,根据完全二叉树...
  • 今天部门内一个人问我,在oracle中如何从子节点记录向父节点上溯.比如有一个表:guid parentguid1 02 13 14 25 26 57 58 7我们从GUID为1根据parentguid关系可以查出该GUID下的所有子节点.现在要从某一子节点...
  • 1、用jQuery.isEmptyObject()方法判断该节点对象是否...}2、判断该JQ对象的第一个元素是否为undefinedif(($(?)[0]==undefined){ ... }3、判断该JQ对象的所有子节点对象的数量是否为0if($(?).children().length == 0){
  • class BinaryTreeNode { int val; BinaryTreeNode left = null; BinaryTreeNode right = null; } public class NodesStatistics { ... * (2)如果二叉树不为空,二叉树节点个数 = 左子节点个数
  • (3)如果二叉树不为空且k>1,返回左子树中k-1层的节点个数与右树k-1层节点个数之和 二叉树叶子节点个数 递归方式 (1)如果给定节点pRoot为NULL,则是空树,叶子节点为0,返回0; (2)如果给定节点pRoot左右...
  • 117. 填充每个节点的下一个右侧节点指针 II 给定一个二叉树 struct Node { int val; Node *left; Node *right; Node *next; } 填充它的每个 next 指针,让这个指针指向其下一个右侧节点。如果找不到下一个右侧...
  • 之前我们知道怎么求根节点到某一子节点的路径。同理,要求两个子节点之间的路径,我们可以分别求出根节点到子节点的路径,然后合并路径即可...//寻找某一个特定的子节点 bool bLeafIsFound = false;//全局变量 void f
  • treeview节点是从数据库读取的,现在要实现点击父节点,则对应子节点全部赋值给text数组 ![图片说明](https://img-ask.csdn.net/upload/201607/26/1469536648_924415.png) 比如点击1100005067,则获取所有子节点信息...
  • jquery如何获取某一个兄弟节点

    万次阅读 多人点赞 2016-07-14 13:45:09
    jquery如何获取某一个兄弟节点$('#id').siblings() 当前元素所有的兄弟节点$('#id').prev() 当前元素前一个兄弟节点$('#id').prevaAll() 当前元素之前所有的兄弟节点$('#id').next() 当前元素之后第一个兄弟节点$('#...
  • C#如何在TreeView的子节点上添加一个TextBox控件,这个TextBox能输入文字,并用一个Button保存文字 我是新手,求大神讲细点

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 906,097
精华内容 362,438
关键字:

一个节点的子节点个数