Node.contains检测元素节点是不是另一个元素的子节点

网页开发中检测元素节点是不是另一个元素的子节点是一件很常用的事情,这样方便我们去判断方法事件,然而很多人不知道Element.classList API,例如classname管理需要特定的javascript工具包才可以完成,然而像检测元素节点是不是另一个元素的子节点这样的方法,认为只能通过工具或者是循环检测contains才能完成,其实下面的代码也可以:

 代码如下 复制代码
function(parentNode, childNode) {
    if('contains' in parentNode) {
        return parentNode.contains(childNode);
    }
    else {
        return parentNode.compareDocumentPosition(childNode) % 16;
    }
}

你会注意到我们的检查contains在使用它之前,你可能会想到,用鲜为人知的compareDocumentPosition在这种情况下,contains不支持(Firefox < 9)。这种方法将是有益的 当创建一个拖放控件和确定的动作之间的列表。

补充:jquery如何判断当前元素是不是某节点的子元素

 代码如下 复制代码

$(node).click(function(){
    if($(this).parents('.aa').length > 0){
        //是aa类下的子节点
    }
});

时间: 2024-10-29 11:13:06

Node.contains检测元素节点是不是另一个元素的子节点的相关文章

jQuery中判断一个元素是否为另一个元素的子元素(或者其本身)_jquery

上个月研究学习了<js判断一个元素是否为另一个元素的子元素>,感觉还挺好用,但是在jQuery应用中还是有很多缺陷,比如多个元素的时候写起来就不是很方便.所以写了比较简单的jQuery判断一个元素是否为另一个元素的子元素(或者其本身)的两个扩展: 复制代码 代码如下: //判断:当前元素是否是被筛选元素的子元素 jQuery.fn.isChildOf = function(b){ return (this.parents(b).length > 0); }; //判断:当前元素是否是被筛

js判断一个元素是否为另一个元素的子元素的代码_javascript技巧

当然方法有很多,不过个人认为通过判断一个元素是否为另一个元素的子元素是最简单的实现方式之一. 废话少说直接上方法: 复制代码 代码如下: function isParent (obj,parentObj){ while (obj != undefined && obj != null && obj.tagName.toUpperCase() != 'BODY'){ if (obj == parentObj){ return true; } obj = obj.parentN

根据一个节点查询出它所有的子节点和父节点

问题描述 用户权限问题有这样一个表MenuIDMenuNameParentMenuID1a2b12c14d25e46f5在权限表里只存了MenuID比如说张三对菜单4有操作权限,那么我就得查出和4有关的父节点以及4下边的所有子节点请高手帮忙! 解决方案 解决方案二:sql还是C#sql用CTEC#递归解决方案三:递归几层啊?2是4的父,1是2的父,1取不取?5是4的子,6是5的子,6取不取如果memu表的内容不太多就读出来放到DataTable并常驻内存就行了,通过DataTable的selec

动态的创建一个元素createElement及删除一个元素_javascript技巧

复制代码 代码如下: <html> <script language = "javascript" type = "text/javascript"> function test(){ //创建元素 var myElement = document.createElement("a");//a是想创建的html元素标签名 //给创建的元素添加必要的信息 myElement.href = "http://www.b

jquery 设置元素相对于另一个元素的top值(实例代码)_jquery

<div id="span1">sfdsfsddfsdf</div><span id="span2" style="position:relative">         <input id="input" type="text"></input>        <input id="button" type="

js jquery获取当前元素的兄弟级 上一个 下一个元素_jquery

var chils= s.childNodes;  //得到s的全部子节点 var par=s.parentNode;   //得到s的父节点 var ns=s.nextSbiling;   //获得s的下一个兄弟节点 var ps=s.previousSbiling;  //得到s的上一个兄弟节点 var fc=s.firstChild;   //获得s的第一个子节点 var lc=s.lastChile;   //获得s的最后一个子节点 JS获取节点父级,子级元素 先说一下JS的获取方法,其

js遍历 子节点 子元素

js遍历 子节点 子元素   Js 节点 子元素 属性 方法    // 添加子节点前 删除所有子节点   var usernameEle = document.getElementById("username");   var childs = usernameEle.childNodes;       for(var i = childs.length - 1; i >= 0; i--) {             usernameEle.removeChild(childs

php中删除数组的第一个元素和最后一个元素的函数_php技巧

对于一个php数组,该如何删除该数组的第一个元素或者最后一个元素呢?其实这两个过程都可以通过php自带的函数 array_pop 和 array_shift 来完成,下面就具体介绍一下如何来操作. (1)使用 array_pop 删除数组的最后一个元素,例如: $user=array('apple','banana','orange'); $result=array_pop($user); print_r($result); print_r($user); 结果将是: orange array(

jquery实现删除一个元素后面的所有元素功能_jquery

本文实例为大家分享了jquery实现删除一个元素后面的所有元素功能的详细实现过程,具体实现内容如下 实现效果: 选择项目 点击删除按钮,被选项之后的所有同级元素都被删除 jQuery 遍历的nextAll() 方法可以搜索 DOM 树中的元素跟随的同胞元素,也就是一个元素后面的所有同级元素,删除可以使用方法remove(),所以连起来为$(selector).nextAll().remove(); 下面给出实例演示:点击按钮后,删除被选项目之后的所有选项 创建Html元素 <div class=