基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
来源:互联网 发布:java监听端口接收数据 编辑:程序博客网 时间:2024/05/17 22:45
has(selector选择器或DOM元素) 将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集。
下面举一个例子:
这与find()方法不同,find()方法是获得在当前结果集中每个元素的后代。参数(选择器、jquery集合或DOM元素)做为过滤条件,满足过滤条件的则保留,保留的是后代。而has()方法中,参数只做为条件,符合条件的,它的前元素加入新的结果集,而不是后代加入新的结果集。
下面举一个例子:
<ul> <li>list item 1</li> <li>list item 2 <ul> <li><div><span>a</span></div>list item 2-a</li> <li>list item 2-b</li> </ul> </li> <li>list item 3</li> <li>list item 4</li></ul>
$('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的后代元素<ul> <li class="a">list item 1</li> <li>list item 2 <ul> <li><div><span>a</span></div>list item 2-a</li> <li>list item 2-b</li> </ul> </li> <li>list item 3</li> <li>list item 4</li></ul>
$('li').filter('.a').css('background-color', 'red');结果为:
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- 解说jquery的has()方法以及与find()方法以及filter()方法的区别
- [jq]jquery的has,find和filter方法的区别
- Jquery中的has、find、filter方法区别
- 基于jquery的 has() 、 find() 与 filter() 的区别
- jquery方法find和filter的区别
- jQuery中find()方法和filter()方法的区别
- jQuery中find()方法、children方法、filter()方法的区别分析
- jQuery的child方法、find方法,区别?
- jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
- jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
- 关于js中的onclick事件和JQuery中的click方法以及on方法事件的详解以及区别
- 过滤器Filter、Filter的生命周期,以及常用方法
- jquery对象和dom对象的区别以及转换方法
- 一个jquery的面试题(find()和filter方法有何区别)
- jQuery源码分析之实例find和filter方法的区别七问
- jQuery中filter()和find()和has()的用法区别
- NSSet的方法,以及与NSArray、NSDicition之间的区别。
- SET NOCOUNT ON
- CSS3 之媒体查询Media Query
- 使用eclipse快速搭建erlang开发环境
- 再议静态全局变量、静态局部变量、全局变量存在内存的区域,
- vim Sessions
- 基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
- 宇龙酷派202笔试题
- 实现输出一个数字的二进制表示
- C语言小结(二)
- C++ 中使用memset和memcpy 对字符串和字符串数组处理
- ADC
- Linux下软件安装方法总结
- 关于全局变量在头文件中声明的问题 ctrl-c from凌阳—浩哥
- 【FFT-快速傅立叶变换】