jquery里4种可以判断一个节点是否包含另一个节点的方法及具体的在线实例演示推荐 亲测 原创

文章标签:
  • :
  • 06-23 10:08
  • :
  • 56次
  • :
  • 0条
  • 2赞

简介在jquery里用来判断一个节点是否包含另一个节点的四种方法,及具体的在线实例演示。l

在网页开发中,我们有时候可能会需要判断一个HTML标签节点是否包含在另一个标签节点里,那么用jquery的方法,我们要如何来判断呢?

站长在这里总结了四种方法,分享给大家,并且文章的最后会有完整的在线实例演示的。


方法一:$.contains :jquery里自带的一个工具函数,可以用来判断一个节点是否包含另一个节点:

//下面这两个是CHM手册里提供的一个实例
$.contains(document.documentElement, document.body); // true
$.contains(document.body, document.documentElement); // false

站长在使用$.contains来判断一个div里是否包含了p标签,就这样来写:

if($.contains($("div"),$("p"))){
    alert("包含");
}else{
    alert("不包含");
}

但经过测试,上面的写法是错误的,判断不出来,经过一番研究后,发现在使用$.contains来进行判断时,需要把要判断的节点转换成js对象,所以正确的写法如下:

if($.contains($("div")[0],$("p")[0])){
    alert("包含");
}else{
    alert("不包含");
}

站长以前写过一篇关于jquery对象转换为js对象的文章:jquery对象与dom对象之间互相转换的方法,使jquery对象可以直接使用js里的方法

方法二:$("P",$("div")) : 在指定范围内查找匹配的节点:

if($("p#sun_p",$("div"))[0]){
    alert("包含");
}else{
    alert("不包含");
}

要注意的是,我们要判断一个指定的节点是否存在时,是需要把jquery对象转换成js对象的,因为jquery对象不管是否存在,都会返回一个对象,是判断不出来的:jquery里判断某个ID的HTML标签是否存在的方法[亲测]

方法三:has:匹配含有选择器所匹配的元素的元素

if($("div:has(p#sun_p)")[0]){
    alert("包含");
}else{
    alert("不包含");
}

和方法二一样,需要把jquery对象转换为js对象

方法四:用jquery里的层级选择器:

if($("div p#sun_p")[0]){
    alert("包含");
}else{
    alert("不包含");
}

好了,我们用jquery来判断一个节点是否包含了另一个节点,就上面这四种方法了,上面四种方法站长已经亲测过的,下面是在线实例演示地址:

jquery判断一个节点是否包含另一个节点的在线实例演示



您正在找的文章可能是:
热点文章
热点图文
最近更新