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实现图片轮播效果
May 08 jQuery
jQuery实现select下拉框获取当前选中文本、值、索引
May 08 jQuery
jQuery实现选中行变色效果(实例讲解)
Jul 06 jQuery
jQuery实现可编辑表格并生成json结果(实例代码)
Jul 19 jQuery
jQuery Datatables表头不对齐的解决办法
Nov 27 jQuery
jQuery动态添加li标签并添加属性和绑定事件方法
Feb 24 jQuery
jQuery实现根据身份证号获取生日、年龄、性别等信息的方法
Jan 09 jQuery
jquery层次选择器的介绍
Jan 18 jQuery
在vue项目中使用Jquery-contextmenu插件的步骤讲解
Jan 27 jQuery
jQuery实现的卷帘门滑入滑出效果【案例】
Feb 18 jQuery
jquery实现自定义树形表格的方法【自定义树形结构table】
Jul 12 jQuery
jquery实现图片无缝滚动 蒙版遮蔽效果
Jan 11 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
星际实力自我测试
2020/03/04 星际争霸
php 随机排序广告的实现代码
2011/05/09 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
php报错502badgateway解决方法
2019/10/11 PHP
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
2012/01/13 Javascript
js实现遮罩层划出效果是生成div而不是显示
2014/07/29 Javascript
jQuery+canvas实现简单的球体斜抛及颜色动态变换效果
2016/01/28 Javascript
微信支付 JS API支付接口详解
2016/07/11 Javascript
jQuery内存泄露解决办法
2016/12/13 Javascript
JavaScrpt判断一个数是否是质数的实例代码
2017/06/11 Javascript
关于javascript作用域的常见面试题分享
2017/06/18 Javascript
前端必备插件之纯原生JS的瀑布流插件Macy.js
2017/11/22 Javascript
arcgis for js栅格图层叠加(Raster Layer)问题
2017/11/22 Javascript
Node批量爬取头条视频并保存方法
2018/09/20 Javascript
浅谈一个webpack构建速度优化误区
2019/06/24 Javascript
js实现多张图片每隔一秒切换一张图片
2019/07/29 Javascript
微信小程序渲染性能调优小结
2019/07/30 Javascript
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
Tensorflow环境搭建的方法步骤
2018/02/07 Python
Python实现抓取HTML网页并以PDF文件形式保存的方法
2018/05/08 Python
pandas值替换方法
2018/07/10 Python
python 实现对文件夹中的图像连续重命名方法
2018/10/25 Python
python之pymysql模块简单应用示例代码
2019/12/16 Python
已安装tensorflow-gpu,但keras无法使用GPU加速的解决
2020/02/07 Python
在ipython notebook中使用argparse方式
2020/04/20 Python
python中读入二维csv格式的表格方法详解(以元组/列表形式表示)
2020/04/24 Python
美国婴儿用品店:Babies”R”Us
2017/10/12 全球购物
DBA的职责都有哪些
2012/05/16 面试题
手工社团活动方案
2014/02/17 职场文书
读群众路线的心得体会
2014/09/03 职场文书
和谐家庭事迹材料
2014/12/20 职场文书
金榜题名主持词
2015/07/02 职场文书
2016中考冲刺决心书
2015/09/22 职场文书
Win11绿屏怎么办?Win11绿屏死机的解决方法
2021/11/21 数码科技
Python实现Excel文件的合并(以新冠疫情数据为例)
2022/03/20 Python