题解 | #共同父亲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];
}
全部评论

相关推荐

真的很糟糕:欲哭无泪
点赞 评论 收藏
分享
昨天 15:12
门头沟学院 运营
面向对象的火龙果很爱...:去吃一顿炸鸡就走
点赞 评论 收藏
分享
头顶尖尖的程序员:我也是面了三四次才放平心态的。准备好自我介绍,不一定要背熟,可以记事本写下来读。全程控制语速,所有问题都先思考几秒,不要急着答,不要打断面试官说话。
点赞 评论 收藏
分享
评论
3
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务