首页 > web前端 > js教程 > js查找父节点的简单方法_javascript技巧

js查找父节点的简单方法_javascript技巧

WBOY
发布: 2016-05-16 19:03:26
原创
1713 人浏览过

        标题
        

                
  • 项目一

  •                 

                          
    • 子类一

    •                     
    • 子类二

    •                 

                
  • 项目一

  •             
  • 项目

  •         


上面的代码中,在点击项目或子类时,因为触发的事件一样,参数也一样,能区别用户点击的到底是“项目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==parent){return i;}
              if(n==document.documentElement){return -1;} //找不到目标父节点,防止死循环
          }
      }
      函数的返回值是索引数字,如果入口节点与查找的父节点相同(即同一个元素),返回值为0,向上循环找到父节点后返回向上查找的节点级数,如果向上查找,到了整个页面的根节点,比如是,还找不到,就返回-1,并结束循环。

      返回值与String对象内置的indexOf方法相似。函数的关键是for的第二个参数n=n.parentNode,感觉比较巧妙。

相关标签:
js
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板