题目:
查找两个节点的最近的一个共同父节点
题目描述
查找两个节点的最近的一个共同父节点,可以包括节点自身
输入描述:
oNode1 和 oNode2 在同一文档中,且不会为相同的节点
function commonParentNode(oNode1, oNode2) {
if (oNode1.contains(oNode2)) {
return oNode1;
} else {
return commonParentNode(oNode1.parentNode, oNode2);
}
}
知识点:
contains()方法
DOM 编程中经常需要确定一个元素是不是另一个元素的后代。IE 首先引入了 contains()方法,
让开发者可以在不遍历 DOM 的情况下获取这个信息。contains()方法应该在要搜索的祖先元素上调用,参数是待确定的目标节点。
如果目标节点是被搜索节点的后代,contains()返回 true,否则返回 false。下面看一个例子:
console.log(document.documentElement.contains(document.body)); // true