题目描述:
查找两个节点的最近的一个共同父节点,可以包括节点自身
输入描述:
oNode1 和 oNode2 在同一文档中,且不会为相同的节点
递归实现:
function commonParentNode(oNode1, oNode2) {
if(oNode1.contains(oNode2)){
return oNode1
}else{
return commonParentNode(oNode1.parentNode, oNode2)
}
}
迭代实现:
方式1:
function commonParentNode(oNode1, oNode2) {
for(;;oNode1=oNode1.parentNode){
if(oNode1.contains(oNode2)){
return oNode1;
}
}
}
方式2:
function commonParentNode(oNode1, oNode2) {
while(1){
if(oNode1.contains(oNode2)){
return oNode1
}
oNode1 = oNode1.parentNode
}
}
原生JS中是有contains方法的,但它并不是字符串方法,仅用于判断DOM元素的包含关系,参数是Element类型