手机
当前位置:查字典教程网 >编程开发 >Javascript教程 >javascript下查找父节点的简单方法
javascript下查找父节点的简单方法
摘要:标题项目一子类一子类二项目一项目上面的代码中,在点击项目或子类时,因为触发的事件一样,参数也一样,能区别用户点击的到底是“项目x”还是“子类...

<div>

<ahref="#">标题</a>

<ulid="demo">

<li><ahref="#"onclick="selectThisItem(this)">项目一</a></li>

<ul>

<li><ahref="#"onclick="selectThisItem(this)">子类一</a></li>

<li><ahref="#"onclick="selectThisItem(this)">子类二</a></li>

</ul>

<li><ahref="#"onclick="selectThisItem(this)">项目一</a></li>

<li><ahref="#"onclick="selectThisItem(this)">项目</a></li>

</ul>

</div>

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

计算节点深度在排除递归方法后,找到了一个更为简单的方法:

functionparentIndexOf(node,parent){

if(node==parent){return0;}

for(vari=0,n=node;n=n.parentNode;i++){

if(n==p){returni;}

if(n==document.documentElement){return-1;}//找不到目标父节点,防止死循环

}

}

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

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

【javascript下查找父节点的简单方法】相关文章:

javascript实现十秒钟后注册按钮可点击的方法

javascript删除元素节点removeChild()用法实例

JavaScript中用于生成随机数的Math.random()方法

JavaScript实现表格点击排序的方法

JavaScript中的unshift()方法的使用

javascript实现设置、获取和删除Cookie的方法

JavaScript检测字符串中是否含有html标签实现方法

在JavaScript中使用开平方根的sqrt()方法

JavaScript中的Math.sin()方法使用详解

javascript中attachEvent用法

精品推荐
分类导航