栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

javascript下查找父节点的简单方法

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

javascript下查找父节点的简单方法


       标题
       
           
  • 项目一

  •                

                         
    • 子类一

    •                    
    • 子类二

    •                

               
  • 项目一

  •            
  • 项目

  •        



    上面的代码中,在点击项目或子类时,因为触发的事件一样,参数也一样,能区别用户点击的到底是“项目x”还是“子类x”,除了this.innerHTML来判断它们的内在文字外,还可以根据它们在以元素为根节点的xml文档中的纵向位置(节点深度)来区别,比如“项目一”在中的节点深度是2,“子类一”的节点深度是4.

    计算节点深度在排除递归方法后,找到了一个更为简单的方法: function parentIndexOf(node,parent){
       if(node==parent){return 0;}
       for (var i=0,n=node; n=n.parentNode; i++){
           if(n==p){return i;}
           if(n==document.documentElement){return -1;} //找不到目标父节点,防止死循环
       }
    }


    函数的返回值是索引数字,如果入口节点与查找的父节点相同(即同一个元素),返回值为0,向上循环找到父节点后返回向上查找的节点级数,如果向上查找,到了整个页面的根节点,比如是,还找不到,就返回-1,并结束循环。

    返回值与String对象内置的indexOf方法相似。函数的关键是for的第二个参数n=n.parentNode,感觉比较巧妙。
    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/119843.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号