Node.contains()返回的是一个布尔值,来表示传入的节点是否为该节点的后代节点。

前景介绍:
  • 刷题记录:题目

    • 查找两个节点的最近的一个共同父节点,可以包括节点自身

自己的思路是先固定一个元素,找到这个递归找到这个元素的所有的上级父元素存在一个数组中,再递归查找元素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;

你可能感兴趣的:(javascript)