DOM共同父节点查找

题目描述

查找两个节点的最近的一个共同父节点,可以包括节点自身

输入描述:

oNode1 和 oNode2 在同一文档中,且不会为相同的节点

我的解答:递归+contains函数的使用

function commonParentNode(oNode1, oNode2) {
    if(oNode1.contains(oNode2)) {
        return oNode1;
    }
    else {
        return commonParentNode(oNode1.parentNode,oNode2); // 递归的使用
    }
}

其他解法:

function commonParentNode(oNode1, oNode2) {
    for(;;oNode1=oNode1.parentNode) {
        if(oNode1.contains(oNode2)){ //注意是contains其中的字母s不能落下
            return oNode1;
        }
   }
}

javascript contains方法


  1. <div id="parent">  
  2.   <p>  
  3.     <strong id="child" >本例子会在火狐中会报错。strong>  
  4.   p>  
  5. div>
  1.  var A = document.getElementById('parent'),  
  2.     B = document.getElementById('child');  
  3.     alert(A.contains(B));  //true
  4.     alert(B.contains(A));  //false




你可能感兴趣的:(JavaScript,NK---前端技能大挑战)