题解 | #dom 节点查找#

dom 节点查找

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

1.让其中一个节点oNode1一步一步往上挪,每挪一步就让另一个节点oNode2往上搜索看看能否与oNode2相遇,若无法相遇则返回原位,等oNode挪动之后再继续往上跑
function commonParentNode(oNode1, oNode2) {
let parent1=oNode1.parentNode;
let parent2=oNode2.parentNode;
while(parent1!=parent2){
//用一个临时变量将parent2暂存起来,为了parent2往上找不到时能够返回原来位置
let temp=parent1;
//parent2不断往上找,直到相等或者碰到html标签
while(parent1!=parent2&&parent2!=document.documentElement){
parent2=parent2.parentNode;
}
//parent2找完一圈找不到时,parent2返回原点,并让parent1往上移一个节点
parent2=temp;
parent1=parent1.parentNode;
}
//此时已经找到,parent1==parent2返回其中一个即可
return parent1;
}
2.使用node.contains(otherNode)方法
function commonParentNode(oNode1, oNode2) {
//使用node.contains(otherNode)方法
while(oNode1!=oNode2){
//两个节点不相等时判断oNode1是否包含oNode2,若包含,oNode1即为所求
if(oNode1.contains(oNode2))return oNode1;
//若不包含,oNode往上移,继续判断
oNode1=oNode1.parentNode;
}
return oNode1;
}

全部评论

相关推荐

头像
02-15 16:23
中南大学 Java
野猪不是猪🐗:签了美团真是不一样! 亲戚们都知道我签了美团,过年都围着我问送一单多少钱,还让弟弟妹妹们引以为戒,笑我爸我妈养了个🐢孩子,说从小就知道我这个人以后肯定没出息,我被骂的都快上天了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务