关于javascript:Nodecontains返回的是一个布尔值来表示传入的节点是否为该节点的后代节点

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

    • 查找两个节点的最近的一个独特父节点,能够包含节点本身

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

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理