题解 | #共同父亲dom节点查找#

dom 节点查找

http://www.nowcoder.com/practice/74d74be449af4c66907fe2d6961c255c

function commonParentNode(oNode1, oNode2) {
        let arr1 = [oNode1];
        let arr2 = [oNode2];
        let DOM1 = oNode1.parentNode;
        let DOM2 = oNode2.parentNode;
  		// 遍历并存储所有oNode1和oNode2的父节点,直到document标签
        while(DOM1){
            arr1.push(DOM1);
            DOM1 = DOM1.parentNode;
        }
        while(DOM2){
            arr2.push(DOM2);
            DOM2 = DOM2.parentNode;
        }
        // 两个数组从队尾开始向前遍历,直到找到第一个不同的节点
        let i=arr1.length;
        let j = arr2.length;
        while(i!==0||j!==0){
            if(arr1[i]!==arr2[j]){
                break;
            }
            i--;j--;
        }
  		// 返回该节点的父节点
        return arr1[++i];
}
全部评论

相关推荐

09-11 03:07
已编辑
湖南大学 Java
点赞 评论 收藏
分享
3 收藏 评论
分享
牛客网
牛客企业服务