jQuery查找和过滤_动力节点节点Java学院整理


Posted in jQuery onJuly 04, 2017

通常情况下选择器可以直接定位到我们想要的元素,但是,当我们拿到一个jQuery对象后,还可以以这个对象为基准,进行查找和过滤。

最常见的查找是在某个节点的所有子节点中查找,使用find()方法,它本身又接收一个任意的选择器。例如如下的HTML结构:

<!-- HTML结构 -->
<ul class="lang">
 <li class="js dy">JavaScript</li>
 <li class="dy">Python</li>
 <li id="swift">Swift</li>
 <li class="dy">Scheme</li>
 <li name="haskell">Haskell</li>
</ul>

find()查找:

var ul = $('ul.lang'); // 获得<ul>
var dy = ul.find('.dy'); // 获得JavaScript, Python, Scheme
var swf = ul.find('#swift'); // 获得Swift
var hsk = ul.find('[name=haskell]'); // 获得Haskell

如果要从当前节点开始向上查找,使用parent()方法:

var swf = $('#swift'); // 获得Swift
var parent = swf.parent(); // 获得Swift的上层节点<ul>
var a = swf.parent('div.red'); // 从Swift的父节点开始向上查找,直到找到某个符合条件的节点并返回

对于位于同一层级的节点,可以通过next()prev()方法,例如:
当我们已经拿到Swift节点后:

var swift = $('#swift');

swift.next(); // Scheme
swift.next('[name=haskell]'); // Haskell,因为Haskell是后续第一个符合选择器条件的节点

swift.prev(); // Python
swift.prev('.js'); // JavaScript,因为JavaScript是往前第一个符合选择器条件的节点

过滤

和函数式编程的map、filter类似,jQuery对象也有类似的方法。
filter()方法可以过滤掉不符合选择器条件的节点:

var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell
var a = langs.filter('.dy'); // 拿到JavaScript, Python, Scheme

或者传入一个函数,要特别注意函数内部的this被绑定为DOM对象,不是jQuery对象:

var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell
langs.filter(function () {
 return this.innerHTML.indexOf('S') === 0; // 返回S开头的节点
}); // 拿到Swift, Scheme

map()方法把一个jQuery对象包含的若干DOM节点转化为其他对象:

var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell
var arr = langs.map(function () {
 return this.innerHTML;
}).get(); // 用get()拿到包含string的Array:['JavaScript', 'Python', 'Swift', 'Scheme', 'Haskell']

此外,一个jQuery对象如果包含了不止一个DOM节点,first()、last()slice()方法可以返回一个新的jQuery对象,把不需要的DOM节点去掉:

var langs = $('ul.lang li'); // 拿到JavaScript, Python, Swift, Scheme和Haskell
var js = langs.first(); // JavaScript,相当于$('ul.lang li:first-child')
var haskell = langs.last(); // Haskell, 相当于$('ul.lang li:last-child')
var sub = langs.slice(2, 4); // Swift, Scheme, 参数和数组的slice()方法一致

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

jQuery 相关文章推荐
jquery实现tab键进行选择后enter键触发click行为
Mar 29 jQuery
jQuery复合事件用法示例
Jun 10 jQuery
jquery处理checkbox(复选框)是否被选中实例代码
Jun 12 jQuery
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 jQuery
简单实现jQuery手风琴效果
Aug 18 jQuery
jquery实现回车键触发事件(实例讲解)
Nov 21 jQuery
jQuery实现手机号正则验证输入及自动填充空格功能
Jan 02 jQuery
bootstrap+jquery项目引入文件报错的解决方法
Jan 22 jQuery
jQuery中的类名选择器(.class)用法简单示例
May 14 jQuery
jQuery实现的响应鼠标移动方向插件用法示例【附源码下载】
Aug 28 jQuery
jquery将json转为数据字典的实例代码
Oct 11 jQuery
基于JQuery和DWR实现异步数据传递
Oct 16 jQuery
jQuery动画_动力节点节点Java学院整理
Jul 04 #jQuery
jQuery实现点击关注和取消功能
Jul 03 #jQuery
关于jQuery.ajax()的jsonp碰上post详解
Jul 02 #jQuery
jquery实现一个全局计时器(商城可用)
Jun 30 #jQuery
jQuery表单设置值的方法
Jun 30 #jQuery
jQuery开源组件BootstrapValidator使用详解
Jun 29 #jQuery
Vue.js列表渲染绑定jQuery插件的正确姿势
Jun 29 #jQuery
You might like
php adodb连接带密码access数据库实例,测试成功
2008/05/14 PHP
php AJAX实例根据邮编自动完成地址信息
2008/11/23 PHP
JS获取scrollHeight问题想到的标准问题
2007/05/27 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
jQuery 表单验证扩展(三)
2010/10/20 Javascript
JS测试显示屏分辨率以及屏幕尺寸的方法
2013/11/22 Javascript
JavaScript数组Array对象增加和删除元素方法总结
2015/01/20 Javascript
javascript实现10个球随机运动、碰撞实例详解
2015/07/08 Javascript
js实现不提交表单获取单选按钮值的方法
2015/08/21 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
将List对象列表转换成JSON格式的类实现方法
2016/07/04 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
js中Object.defineProperty()方法的不详解
2018/07/09 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
js中值引用和地址引用实例分析
2019/06/21 Javascript
简单介绍Python中用于求最小值的min()方法
2015/05/15 Python
python 与服务器的共享文件夹交互方法
2018/12/27 Python
Pandas之Fillna填充缺失数据的方法
2019/06/25 Python
Python实现图片裁剪的两种方式(Pillow和OpenCV)
2019/10/30 Python
如何基于Python实现数字类型转换
2020/02/07 Python
python 爬虫之selenium可视化爬虫的实现
2020/12/04 Python
使用BeautifulSoup4解析XML的方法小结
2020/12/07 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
公司营业员的工作总结自我评价
2013/10/05 职场文书
求职信模版
2013/11/30 职场文书
关于感恩的演讲稿200字
2014/08/26 职场文书
沈阳故宫导游词
2015/01/31 职场文书
董事长秘书岗位职责
2015/02/13 职场文书
汽车4S店前台接待岗位职责
2015/04/03 职场文书
员工加薪申请报告
2015/05/15 职场文书
2016新教师岗前培训心得体会
2016/01/08 职场文书
导游词之徐州云龙湖
2019/11/19 职场文书
python基于turtle绘制几何图形
2021/06/15 Python
vue+elementUI实现表格列的显示与隐藏
2022/04/13 Vue.js
python游戏开发Pygame框架
2022/04/22 Python