描述
查找两个节点的最近的一个共同父节点,可以包括节点自身
输入描述:
oNode1 和 oNode2 在同一文档中,且不会为相同的节点
①两个DOM是否有一方包含另一方,如果包含直接返回当前节点
②如果不包含,说明两个DOM在,DOM树的不同分支,所以取任一节点的父节点去判断是否包含另一个节点,如果包含返回当前节点,如果不包含,就继续向上找,直到找到结果为止
function commonParentNode(oNode1, oNode2) {
if (oNode1.contains(oNode2)) return oNode1;
if (oNode2.contains(oNode1)) return oNode2;
let oNode = oNode1.parentNode;
if (oNode.contains(oNode2)) {
return oNode;
} else {
oNode = oNode.parentNode;
}
}