基于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 相关文章推荐
javascript 中that的含义示例介绍
May 14 Javascript
javascript数组详解
Oct 22 Javascript
javascript使用for循环批量注册的事件不能正确获取索引值的解决方法
Dec 20 Javascript
jquery滚动特效集锦
Jun 03 Javascript
jquery-tips悬浮提示插件分享
Jul 31 Javascript
js编写贪吃蛇的小游戏
Aug 24 Javascript
JavaScript实现拖拽元素对齐到网格(每次移动固定距离)
Nov 30 Javascript
js实现开启密码大写提示
Dec 21 Javascript
Canvas实现放射线动画效果
Feb 15 Javascript
详解升级react-router 4 踩坑指南
Aug 14 Javascript
JS实现电话号码的字母组合算法示例
Feb 26 Javascript
利用原生JS实现欢乐水果机小游戏
Apr 23 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编程最快明白》第七讲:php图片验证码与缩略图
2010/11/01 PHP
解决PHP 7编译安装错误:cannot stat ‘phar.phar’: No such file or directory
2017/02/25 PHP
关于javascript中的typeof和instanceof介绍
2012/12/04 Javascript
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
js生成动态表格并为每个单元格添加单击事件的方法
2014/04/14 Javascript
JavaScript阻止事件冒泡示例分享
2014/12/28 Javascript
分享9个最好用的JavaScript开发工具和代码编辑器
2015/03/24 Javascript
使用AngularJS对路由进行安全性处理的方法
2015/06/18 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
2015/10/27 Javascript
require简单实现单页应用程序(SPA)
2016/07/12 Javascript
基于jQuery实现淡入淡出效果轮播图
2020/07/31 Javascript
ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
2016/09/06 Javascript
基于jQuery实现中英文切换导航条效果
2016/09/18 Javascript
简单实现jQuery多选框功能
2017/01/09 Javascript
JS实现两周内自动登录功能
2017/03/23 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
React Native 自定义下拉刷新上拉加载的列表的示例
2018/03/01 Javascript
vue中v-model的应用及使用详解
2018/06/27 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
angular6.0开发教程之如何安装angular6.0框架
2018/06/29 Javascript
elementUI select组件value值注意事项详解
2019/05/29 Javascript
Vue中使用matomo进行访问流量统计的实现
2019/11/05 Javascript
Python单元测试框架unittest使用方法讲解
2015/04/13 Python
Python continue继续循环用法总结
2018/06/10 Python
python将.ppm格式图片转换成.jpg格式文件的方法
2018/10/27 Python
使用matlab或python将txt文件转为excel表格
2019/11/01 Python
Pytorch对Himmelblau函数的优化详解
2020/02/29 Python
Python使用pyyaml模块处理yaml数据
2020/04/14 Python
公司司机岗位职责范本
2014/03/03 职场文书
毕业生自荐信格式
2014/03/07 职场文书
2014年国庆节演讲稿
2014/09/02 职场文书
教师工作表现评语
2014/12/31 职场文书
南湾猴岛导游词
2015/02/09 职场文书
幼儿园教师自荐书
2015/03/06 职场文书
Win11黑色桌面背景怎么办?Win11黑色壁纸解决方法汇总
2022/04/05 数码科技
Python 统计序列中元素的出现频度
2022/04/26 Python