基于jquery的has()方法以及与find()方法以及filter()方法的区别详解_jquery
程序员文章站
2022-03-05 18:03:24
...
has(selector选择器或DOM元素) 将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集。
$('li').has('span').css('background-color', 'red');
得到的结果如下:
下面举一个例子:
复制代码 代码如下:
- list item 1
- list item 2
-
alist item 2-a
- list item 2-b
-
- list item 3
- list item 4
复制代码 代码如下:
$('li').has('span').css('background-color', 'red');
得到的结果如下:
这个例子可以看出:在匹配li时,要检查该li的后代元素中是否包含了span,如果包含,则该元素包含在结果中。如果不包含,那么就排除。
注意:has只起判断作用。以has参数中的选择器或DOM元素做为条件,检测原结果集中的元素是否符合。去掉不符合的元素,将符合的元素构成一个新结果集。
这与find()方法不同,find()方法是获得在当前结果集中每个元素的后代。参数(选择器、jquery集合或DOM元素)做为过滤条件,满足过滤条件的则保留,保留的是后代。而has()方法中,参数只做为条件,符合条件的,它的前元素加入新的结果集,而不是后代加入新的结果集。
$('li').find('span').css('background-color', 'red');
结果为:
filter()方法与has()方法中的参数,都是过滤条件。不同的是filter()方法,条件作用于自身;has()方法条件是作用于它的后代元素中。
以下面的例子为例:filter()方法中,条件作用于自身li,has()方法条件是作用于li的后代元素
复制代码 代码如下:
alist item 2-a
复制代码 代码如下:
$('li').filter('.a').css('background-color', 'red');
结果为:
上一篇: 努比亚红魔游戏手机即将发布:外观吸睛
下一篇: 中兴红牛v5配置给力的千元4G手机
推荐阅读
-
Jquery遍历筛选数组的几种方法和遍历解析json对象,Map()方法详解以及数组中查询某值是否存在
-
详解Java CompletableFuture使用方法以及与FutureTask的区别
-
JQuery中$.each的使用方法 以及和$(selector).each()的区别
-
JQuery中$.each的使用方法 以及和$(selector).each()的区别
-
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析_jquery
-
详解JSON.parse()与JSON.stringify()的区别以及使用方法
-
indexOf()使用方法以及与 jQuery.inArray()的区别
-
用示例说明filter()与find()的用法以及children()与find()的区别分析_jquery
-
基于jquery的has()方法以及与find()方法以及filter()方法的区别详解_jquery
-
用示例说明filter()与find()的用法以及children()与find()的区别分析_jquery