作家
登录

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

作者: 来源:www.28hudong.com 2013-03-30 03:20:50 阅读 我要评论

<div> <a href="#">标题</a> <ul id="demo"> <li><a href="#" onclick="selectThisItem(this)">项目一</a></li> <ul> <li><a href="#" onclick="selectThisItem(this)">子类一</a></li> <li><a href="#" onclick="selectThisItem(this)">子类二</a></li> </ul> <li><a href="#" onclick="selectThisItem(this)">项目一</a></li> <li><a href="#" onclick="selectThisItem(this)">项目</a></li> </ul> </div> 上面的代码中,在点击项目或子类时,因为触发的事件一样,参数也一样,能区别用户点击的到底是“项目x”还是“子类x”,除了this.innerHTML来判断它们的内在文字外,还可以根据它们在以<ul id="demo">元素为根节点的xml文档中的纵向位置(节点深度)来区别,比如“项目一”在<ul id="demo">中的节点深度是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,向上循环找到父节点后返回向上查找的节点级数,如果向上查找,到了整个页面的根节点,比如是<html>,还找不到,就返回-1,并结束循环。 返回值与String对象内置的indexOf方法相似。函数的关键是for的第二个参数n=n.parentNode,感觉比较巧妙。

  推荐阅读

  高亮闪烁某个元素的js脚本

页面上有些重要内容需要提醒客户,可采用的方法有很多。提醒用户关注某一区域(div),可以给该div加上边框闪烁的效果,达到吸引用户眼球的效果。 .box {border:1px solid #ccc; height:100px; width:600px; >>>详细阅读


本文标题:javascript下查找父节点的简单方法

地址:http://www.17bianji.com/kaifa2/JS/30198.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)