题目
查找两个节点的最近的一个共同父节点,可以包括节点自身
代码实现
function commonParentNode(oNode1, oNode2) {
let parentNode1 = oNode1.parentNode;
let parentNode2 = oNode2.parentNode;
while(true) {
// 循环比对 节点
// 比对成功之后 用break打断循环, 一直两者具有想用的父节点, 因此循环一定能打破
// 比对失败之后取当前节点的父节点继续进行比对
if (parentNode1.contains(oNode2)) {
return parentNode1;
} else if (parentNode1.contains(parentNode2)) {
return parentNode1;
} else{
parentNode1 = parentNode1.parentNode;
}
if (parentNode2.contains(oNode1)) {
return parentNode2;
} else if (parentNode2.contains(parentNode1)) {
return parentNode2;
} else {
parentNode2 = parentNode2.parentNode;
}
}
}
网友评论