基于jquery的has()方法以及与find()方法以及filter()方法的区别详解


Posted in Javascript onApril 26, 2013

has(selector选择器或DOM元素)   将匹配元素集合根据选择器或DOM元素为条件,检索该条件在每个元素的后代中是否存在,将符合条件的的元素构成新的结果集。

下面举一个例子:

<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');

得到的结果如下:

基于jquery的has()方法以及与find()方法以及filter()方法的区别详解

这个例子可以看出:在匹配li时,要检查该li的后代元素中是否包含了span,如果包含,则该元素包含在结果中。如果不包含,那么就排除。

注意:has只起判断作用。以has参数中的选择器或DOM元素做为条件,检测原结果集中的元素是否符合。去掉不符合的元素,将符合的元素构成一个新结果集。

这与find()方法不同,find()方法是获得在当前结果集中每个元素的后代。参数(选择器、jquery集合或DOM元素)做为过滤条件,满足过滤条件的则保留,保留的是后代。而has()方法中,参数只做为条件,符合条件的,它的前元素加入新的结果集,而不是后代加入新的结果集。

$('li').find('span').css('background-color', 'red');

结果为:

基于jquery的has()方法以及与find()方法以及filter()方法的区别详解
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()方法的区别详解

Javascript 相关文章推荐
JS+DIV实现鼠标划过切换层效果的实例代码
Nov 26 Javascript
表格奇偶行设置不同颜色的核心JS代码
Dec 24 Javascript
chrome下img加载对height()的影响示例探讨
May 26 Javascript
javascript最基本的函数汇总
Jun 25 Javascript
JavaScript中字符串拼接的基本方法
Jul 07 Javascript
javascript实现超炫的向上滑行菜单实例
Aug 03 Javascript
js实现横向伸展开的二级导航菜单代码
Aug 28 Javascript
使用Vue.js和Element-UI做一个简单登录页面的实例
Feb 23 Javascript
使用JavaScript生成罗马字符的实例代码
Jun 08 Javascript
webpack打包非模块化js的方法
Oct 24 Javascript
微信小程序 wepy框架与iview-weapp的用法详解
Apr 10 Javascript
vue中在vuex的actions中请求数据实例
Nov 08 Javascript
jQuery 遍历- 关于closest() 的方法介绍以及与parents()的方法区别分析
Apr 26 #Javascript
用JQuery 判断某个属性是否存在hasAttr的解决方法
Apr 26 #Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 #Javascript
jQuery.Validate验证库的使用介绍
Apr 26 #Javascript
基于jQuery.Validate验证库知识点的详解
Apr 26 #Javascript
关于jQuery新的事件绑定机制on()的使用技巧
Apr 26 #Javascript
利用js的Node遍历找到repeater的一个字段实例介绍
Apr 25 #Javascript
You might like
第七章 php自定义函数实现代码
2011/12/30 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
2016/03/30 PHP
PHP基于pdo的数据库操作类【可支持mysql、sqlserver及oracle】
2018/05/21 PHP
PHP常用函数之根据生日计算年龄功能示例
2019/10/21 PHP
浅析PHP反序列化中过滤函数使用不当导致的对象注入问题
2020/02/15 PHP
通过PHP实现获取访问用户IP
2020/05/09 PHP
addRule在firefox下的兼容写法
2006/11/30 Javascript
Javascript中各种trim的实现详细解析
2013/12/10 Javascript
javascript实现网页字符定位的方法
2015/07/14 Javascript
jQuery EasyUI封装简化操作
2016/09/18 Javascript
AngularJS变量及过滤器Filter用法分析
2016/11/22 Javascript
JS正则表达式判断有效数实例代码
2017/03/13 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
js实现单张图片平移切换效果
2017/10/11 Javascript
解决Mac node版本升级失败的问题
2018/05/16 Javascript
ant-design-vue 快速避坑指南(推荐)
2020/01/21 Javascript
Vue跨域请求问题解决方案过程解析
2020/08/07 Javascript
echarts饼图各个板块之间的空隙如何实现
2020/12/01 Javascript
python中合并两个文本文件并按照姓名首字母排序的例子
2014/04/25 Python
python实现从ftp服务器下载文件的方法
2015/04/30 Python
python实现爬虫下载美女图片
2015/07/14 Python
Python学习笔记之open()函数打开文件路径报错问题
2018/04/28 Python
深入了解Python枚举类型的相关知识
2019/07/09 Python
Python实现实时数据采集新型冠状病毒数据实例
2020/02/04 Python
HTML5 FileReader对象的具体使用方法
2020/05/22 HTML / CSS
美国最大的宠物用品零售商:PetSmart
2016/11/14 全球购物
HEMA法国:荷兰原创设计
2019/02/21 全球购物
Zavvi西班牙:电子游戏、极客服装、Blu-ray、Funko Pop等
2019/05/03 全球购物
Hotels.com韩国:海外国内旅行所需的酒店和住宿预订网站
2020/05/08 全球购物
经典导游欢迎词大全
2014/01/16 职场文书
导购员的岗位职责
2014/02/08 职场文书
岗位廉洁从政承诺书
2014/03/27 职场文书
艺术设计专业求职自荐信
2014/05/19 职场文书
幼儿园爱国卫生月活动总结
2014/06/30 职场文书
劳动争议仲裁代理词
2015/05/25 职场文书
JavaScript前端面试组合函数
2022/06/21 Javascript