1、如果使用 contains 函数的话还是很简单
function commonParentNode(oNode1, oNode2) {
while(oNode1) {
if(oNode1.contains(oNode2)) {
return oNode1
}
oNode1 = oNode1.parentNode
}
} 2、暴力解
function commonParentNode(oNode1, oNode2) {
var nodeList1 = [], nodeList2 = []
while (oNode1) {
nodeList1.unshift(oNode1)
oNode1 = oNode1.parentNode
}
while (oNode2) {
nodeList2.unshift(oNode2)
oNode2 = oNode2.parentNode
}
var cur = 0, commonNode = null
while (cur < nodeList1.length && cur < nodeList2.length) {
if (nodeList1[cur] === nodeList2[cur]) {
commonNode = nodeList1[cur]
}
cur++
}
return commonNode
} 
京公网安备 11010502036488号