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实现异步加载图片(懒加载图片一种方式)
Apr 24 jQuery
Jquery获取radio选中的值
May 05 jQuery
jquery实现放大镜简洁代码(推荐)
Jun 08 jQuery
jQuery validata插件实现方法
Jun 25 jQuery
JavaScript自执行函数和jQuery扩展方法详解
Oct 27 jQuery
jQuery实现的简单前端搜索功能示例
Oct 28 jQuery
jQuery实现基本动画效果的方法详解
Sep 06 jQuery
使用jQuery动态设置单选框的选中效果
Dec 06 jQuery
使用JQuery自动完成插件Auto Complete详解
Jun 18 jQuery
jQuery实现简单QQ聊天框
Aug 27 jQuery
jQuery实现回到顶部效果
Oct 19 jQuery
jQuery实现广告显示和隐藏动画
Jul 04 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中ob_start函数的使用说明
2013/11/11 PHP
PHP实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
Js callBack 返回前一页的js方法
2008/11/30 Javascript
javascript 框架小结 个人工作经验
2009/06/13 Javascript
javascript 语法基础 想学习js的朋友可以看看
2009/12/16 Javascript
Jquery实战_读书笔记2 选择器
2010/01/22 Javascript
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
让人印象深刻的10个jQuery手风琴效果应用
2012/05/08 Javascript
让ie6也支持websocket采用flash封装实现
2013/02/18 Javascript
js事件冒泡实例分享(已测试)
2013/04/23 Javascript
js 通用订单代码
2013/12/23 Javascript
Javascript学习笔记之 函数篇(三) : 闭包和引用
2014/11/23 Javascript
JS逆序遍历实现代码
2014/12/02 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JavaScript常用的弹出广告及背投广告实现方法
2015/02/06 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
JavaScript的函数式编程基础指南
2016/03/19 Javascript
基于Bootstrap的UI扩展 StyleBootstrap
2016/06/17 Javascript
ES6新特性之类(Class)和继承(Extends)相关概念与用法分析
2017/05/24 Javascript
详解JavaScript调用栈、尾递归和手动优化
2017/06/03 Javascript
Vue-cli3项目引入Typescript的实现方法
2019/10/18 Javascript
微信小程序实现横向滚动导航栏效果
2019/12/12 Javascript
vue下axios拦截器token刷新机制的实例代码
2020/01/17 Javascript
使用Vue-scroller页面input框不能触发滑动的问题及解决方法
2020/08/08 Javascript
详解python的数字类型变量与其方法
2016/11/20 Python
python实现一个简单的并查集的示例代码
2018/03/19 Python
Python生成短uuid的方法实例详解
2018/05/29 Python
浅析Python的命名空间与作用域
2020/11/25 Python
Brasty罗马尼亚:购买手表、香水、化妆品、珠宝
2020/04/21 全球购物
实习护理工作自我评价
2013/09/25 职场文书
护士节活动总结
2014/08/29 职场文书
农业生产宣传标语
2014/10/08 职场文书
病人慰问信范文
2015/02/15 职场文书
2015年营业员工作总结
2015/04/23 职场文书
一定要知道的 25 个 Vue 技巧
2021/11/02 Vue.js