<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>contains</title>
</head>
<body>
    <div id="p-node">
        <div id="c-node">子节点内容</div>
    </div>
    <script>
    var pNode=document.getElementById('p-node');
    var cNode=document.getElementById('c-node');
    //判断元素节点pnode是否包含cnode元素节点
    alert(pNode.contains(cNode));
    //判断cnode元素节点是否包含 文本节点
    alert(cNode.contains(cNode.childNodes[0]));
    //判断pnode元素节点是否包含 文本节点
    alert(pNode.contains(cNode.childNodes[0]));
    //***Ie低版本只支持元素节点包含判断
    /**
     * 兼容判断包含关系
     * @param  {[type]} a 上层节点
     * @param  {[type]} b 下层节点
     * @return {[type]}   [description]
     */
    function fixContaion(a,b){
        try{

while(b=b.parentNode){
                if(b===a){
                //如果b<a(a为父,b为子)循环向上查找b的父节点直到他们是同层关系(a===b)
                    return true;
                }
                //如果b>a(如果b为父,a为子),肯定找不到,返回fales
                return false;
            }
        }catch(e){
            //对于游离于dom树外的节点,返回false.
            return false;
        }
    }
    alert(fixContaion(cNode,pNode)); //false
    
    </script>
</body>
</html>

转载于:https://www.cnblogs.com/liu-zhao/p/6824894.html

dom contains 包含关系相关推荐

  1. 【原创】Aspose.Words组件介绍及使用—基本介绍与DOM概述

    阅读目录 1.基本介绍 2.文档对象模型概述        本博客所有文章分类的总目录:http://www.cnblogs.com/asxinyu/p/4288836.html 本博客其他.NET开 ...

  2. 【总结整理】JQuery基础学习---DOM篇

    前言: 先介绍下需要用到的浏览器提供的一些原生的方法(这里不处理低版本的IE兼容问题) 创建流程比较简单,大体如下: 创建节点(常见的:元素.属性和文本) 添加节点的一些属性 加入到文档中 流程中涉及 ...

  3. 【Qt】DOM读取XML文档

    00. 目录 文章目录 00. 目录 01. 概述 02. 开发环境 03. XML文档示例 04. DOM读取XML文档内容 05. 预留 06. 附录 01. 概述 DOM(Document Ob ...

  4. [Qt教程] 第27篇 XML(一)使用DOM读取XML文档

    [Qt教程] 第27篇 XML(一)使用DOM读取XML文档 楼主  发表于 2013-5-21 21:14:28 | 查看: 1001| 回复: 14 使用DOM读取XML文档 版权声明 该文章原创 ...

  5. C#操作Word Aspose.Words组件介绍及使用 基本介绍与DOM概述

    1.基本介绍 Aspose.Words是一个商业.NET类库,可以使得应用程序处理大量的文件任务.Aspose.Words支持Doc,Docx,RTF,HTML,OpenDocument,PDF,XP ...

  6. DOM操作 append prependTo after before

    通过JavaScript可以很方便的获取DOM节点,从而进行一系列的DOM操作.但实际上一般开发者都习惯性的先定义好HTML结构,但这样就非常不灵活了. 试想下这样的情况:如果我们通过AJAX获取到数 ...

  7. 前端(DOM 、BOM 和 事件 )

    目录 前言 一.DOM文档流 1.什么是DOM文档流 2.  DOM = Document Object Model   DOM文档流 3.关于DOM的小实例 4.DOM 改进 二.BOM 1.win ...

  8. JavaScript之BOM和DOM入门

    JavaScript之BOM和DOM入门 JavaScript的组成包含三大部分,分别为ECMAScript.DOM和BOM.JavaScript组成,如下图所示: ECMAScript是JavaSc ...

  9. jQuery08源码 (5140 , 6057) DOM操作 : 添加 删除 获取 包装 DOM筛选

    jQuery.fn.extend({//$('ul').find('li').css('background','red');//$('ul').find( $('li') ).css('backgr ...

最新文章

  1. python3查找文件中指定字符串_Python3在指定路径下递归定位文件中出现的字符串...
  2. undo系统参数详解
  3. Phone重绘机制drawRect 转
  4. 非监督学习的单层网络分析
  5. 利用 Node.js 实现 SAP Hana 数据库编程接口
  6. JDK 14:CMS GC是OBE
  7. 我是一个来自泰兴的程序员,我喜欢C++
  8. CSS3实现静态和动态效果
  9. 拿来就能用!用爬虫秒抢到孩子心仪的幼儿园 | CSDN 博文精选
  10. CCSpriteBatchNode(附:CCMenu与CCSpriteBatchNode的问题)
  11. 清华大学计算机红皮书,哈佛的红皮书_82702698.pdf
  12. php分页类 seo,哪种分页url对seo友好?
  13. Delphi 生成二维码【PaintBox】并保存为本地文件添加至【Image】控件中
  14. 《你若安好,便是晴天》
  15. 《C语言程序设计》第4版 何钦铭、颜晖主编 课后习题答案 第5章 习题5
  16. 用正点原子的精英版与onenet云平台连接
  17. 340. 至多包含K个不同字符的最长子串
  18. memcpy与memcpy_s的使用
  19. 练习系统 实验四 red and black
  20. HarmonyOS和LiteOS的关系,关于harmonyos:科普干货|漫谈鸿蒙LiteOSM与HUAWEI-LiteOS内核的几大不同...

热门文章

  1. Ajax.BeginForm无法调用 ajaxOptions的js函数
  2. 转:巧用搜狗输入法输入英文单词
  3. Silverlight 中datagrid控件-- 通过设置数据虚拟化加速显示
  4. mysql cluster 外键_Mysql外键约束
  5. mysqld已删除但仍占用空间的_Windows 10删除备份文件方法
  6. get方法 服务器响应,HTTP请求方法及响应码详解(http get post head)
  7. android 9.0 https 适配,如何适配 Android 9.0? 在 Android 9.0 上发生 SSL handshake timed out 异常怎么解决...
  8. java map 不存在的key_java – HashMap表示即使它确实存在,Key也不存在
  9. 孙叫兽进阶之路之敏捷开发
  10. 利用Vulnhub复现漏洞 - JBoss JMXInvokerServlet 反序列化漏洞