前景介绍:
刷题记录:题目
- 查找两个节点的最近的一个共同父节点,可以包括节点自身
自己的思路是先固定一个元素,找到这个递归找到这个元素的所有的上级父元素存在一个数组中,再递归查找元素2的父元素在不在这个数组中,但是想着实现过于麻烦,且性能不是很好,于是就翻看了题库其他大神的解析过程,真是打击到自尊心了,觉得还是要多学习,多看,多了解,可能简单的一个API就可以解决你的问题,但是在你不知道的情况下,你就是没有办法解决问题,或者是要比别人多走很多的弯路,所以一定要尽可能多的了解接触新的知识.
//题目: 查找两个节点的最近的一个共同父节点,可以包括节点自身( 前提node1和node2不会是同一个元素 )
function commonParentNode(oNode1, oNode2) {
if(oNode1.contains(oNode2)){
return oNode1;
}else{
return commonParentNode(oNode1.parentNode, oNode2)
}
}
分析:
contains
oNode1.contains(otherNode) 的结果是一个布尔值,表示传入的节点是否为该节点的后代
节点
otherNode 如果是oNode1的后代节点或者是oNode1本身返回true , 否则返回false;
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。