题目描述

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

输入描述:

oNode1 和 oNode2 在同一文档中,且不会为相同的节点

我的解答:递归+contains函数的使用

function commonParentNode(oNode1, oNode2) {
    if(oNode1.contains(oNode2)) {
        return oNode1;
    }
    else {
        return commonParentNode(oNode1.parentNode,oNode2); // 递归的使用
    }
}

其他解法:

function commonParentNode(oNode1, oNode2) {
    for(;;oNode1=oNode1.parentNode) {
        if(oNode1.contains(oNode2)){ //注意是contains其中的字母s不能落下
            return oNode1;
        }
   }
}

javascript contains方法

IE有许多好用的方法,后来都被其他浏览器抄袭了,比如这个contains方法。如果A元素包含B元素,则返回true,否则false。唯一不支持这个方法的是IE的死对头firefox。
  1. <div id="parent">
  2. <p>
  3. <strong id="child" >本例子会在火狐中会报错。</strong>
  4. </p>
  5. </div>
  1. var A = document.getElementById('parent'),
  2. B = document.getElementById('child');
  3. alert(A.contains(B));  //true
  4. alert(B.contains(A));  //false

DOM共同父节点查找相关推荐

  1. XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 查找校验xml文件中相同的节点属性值 java遍历文件夹解析XML

    XML解析 (JAVA解析xml文件)java+Dom4j+Xpath xml文件解析根据子节点得到父节点 以及查找xml文件中相同的节点属性值 项目背景:这是本人实习中所碰到的项目,当时感觉很棘手, ...

  2. html dom取父节点jq,querySelector获得兄弟DOM元素 父级DOM元素 子级DOM元素

    一.js定位兄弟,父级,子级元素 所有DOM方法var el = document.getElementById('xxx');var el = document.getElementByName(' ...

  3. jQuery获取父节点、子节点、兄弟节点

    介绍 jQuery是一个快速.简洁的JavaScript框架,是继Prototype之后又一个优秀的JavaScript代码库(框架)于2006年1月由John Resig发布. jQuery设计的宗 ...

  4. html判断是否有父节点,Jquery判断$(#id)获取的对象是否存在的方法

    一.判断对象对象是否存在 如果是下面的 jquery 代码判断一个对象是否存在,是不能用的 复制代码 代码如下: if($("#id")){ }else{} 因为 $(" ...

  5. SqlServer中递归查询父节点及其所属子节点

    SqlServer中递归查询父节点及其所属子节点 需求场景 SQL脚本实现-根据子节点查询所有的父节点 查询结果 SQL脚本实现-根据父节点查询所有的子节点 查询结果 需求场景 递归查询父节点及其所属 ...

  6. 关于DOM基础:DOM子节点:childNodes、父节点:parentNode以及相对父级元素进行定位的offsetParent

    DOM基础: 子节点:chrldNodes 父节点:parentNode 节点类型:nodetype offsetParent 基本概念 子节点:通俗的说就算一个父元素下面包着一个子元素.相当于一种& ...

  7. dom4j添加节点的父节点_HTML DOM节点介绍

    HTML DOM节点介绍,在HTML DOM中,所有事物都是节点.DOM是被视为节点树的HTML. DOM节点 根据W3C的HTML DOM标准,HTML文档中的所有内容都是节点: 整个文档是一个文档 ...

  8. Java根据子节点查找父节点

    /*** 根据节点查找父节点* @param label* @return*/public static Label getParentLabelObject(Label label,List< ...

  9. html dom节点取父节点,JavaScript DOM父子兄节点操作必看详解

    首先我们知道网页中的所有内容都是节点(标签.属性.文本.注释等) ,之前我们已经说过了一些元素的获取方法 比如element.getElementById(),element.querySelecto ...

最新文章

  1. evt参数是干啥用的_http连接池中非常关键的两个参数,到底是干啥用的?
  2. 使用SCSS高亮显示控件、聚焦位置
  3. gradle教程 [原创](eclipse/ADT下 非插件 非Android Studio/AS)纯手打 第一篇:安装配置gradle...
  4. UBI系统原理-中【转】
  5. Java VS .Net 程序员的困惑 (转)
  6. TTIC Postdoc Position
  7. 轻松搞定Retrofit不同网络请求方式的请求参数配置,及常用注解使用
  8. springboot+druid+mybatis-Plus 配置详解
  9. CSDN云计算是什么?云计算可以应用在哪些方面?
  10. 跳过DOSBox映射的方法
  11. 学习C#十五天的总结
  12. Leetcode每日一题:49.group-anagrams(字母异位词分组)
  13. mysql日志备份的脚本_脚本备份MySQL数据库和binlog日志
  14. 【GDB调试学习笔记】利用core文件调试程序
  15. 从零基础入门Tensorflow2.0 ----七、33 数据padding,模型构建,训练
  16. 单片机原理及应用c语言版课后答案张才华,单片机原理及应用(C语言版)习题答案.doc...
  17. vmware 安装报错:failed to install hcmon drivers 完美解决(含VMware15激活码)
  18. 中望cad文字显示问号怎么办_CAD文件打开后有很多问号怎么办
  19. 组合数学+概率,期望+生成函数一文全精通
  20. m3u8 TS 解密合并转码mp4,支持在线 ,UC、QQ等本地缓存

热门文章

  1. 乘车码小程序全面上线?公交卡呢?不需要的!
  2. 理想的程序大师是如何样炼成的
  3. MepReduce-开启大数据计算之门
  4. 用Python画Logistic函数图像
  5. All in AI?(下)
  6. 软件工程 习题三 课后作业
  7. 九九乘法表(结果为三角形式)
  8. 慧宏五金建材管理软件V2023
  9. 银行卡号识别python_CTPN CRNN-Pytorch 银行卡号识别
  10. 1GB的Win10来了!老电脑用户的福音