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+ThinkPHP+Ajax实现即时消息提醒功能实例代码
Mar 21 jQuery
jQuery插件FusionCharts绘制的2D帕累托图效果示例【附demo源码】
Mar 28 jQuery
基于jQuery实现瀑布流页面
Apr 11 jQuery
用户管理的设计_jquery的ajax实现二级联动效果
Jul 13 jQuery
jQueryMobile之窗体长内容的缺陷与解决方法实例分析
Sep 20 jQuery
jquery动态添加带有样式的HTML标签元素方法
Feb 24 jQuery
jQuery实现左右滑动的toggle方法
Mar 03 jQuery
jquery实现的简单轮播图功能【适合新手】
Aug 17 jQuery
jQuery设置下拉框显示与隐藏效果的方法分析
Sep 15 jQuery
jQuery单页面文字搜索插件jquery.fullsearch.js的使用方法
Feb 04 jQuery
jQuery使用ajax传递json对象到服务端及contentType的用法示例
Mar 12 jQuery
jquery实现点击左右按钮切换图片
Jan 27 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 八种基本的数据类型小结
2011/06/01 PHP
php 模拟 asp.net webFrom 按钮提交事件的思路及代码
2013/12/02 PHP
thinkphp模板继承实例简述
2014/11/26 PHP
Yii2创建控制器(createController)方法详解
2016/07/23 PHP
javascript js cookie的存储,获取和删除
2007/12/29 Javascript
jQuery div层的放大与缩小简单实现代码
2013/03/28 Javascript
javascript使用onclick事件改变选中行的颜色
2013/12/30 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
2015/07/01 Javascript
使用控制台破解百小度一个月只准改一次名字
2015/08/13 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
基于js的变量提升和函数提升(详解)
2017/09/17 Javascript
vue实现自定义多选与单选的答题功能
2018/07/05 Javascript
node.js的Express服务器基本使用教程
2019/01/09 Javascript
详解vue中router-link标签所必备了解的属性
2019/04/15 Javascript
微信小程序rich-text富文本用法实例分析
2019/05/20 Javascript
js实现无限瀑布流实例方法
2019/09/16 Javascript
vue-amap根据地址回显地图并mark的操作
2020/11/03 Javascript
python django集成cas验证系统
2014/07/14 Python
Python 中的with关键字使用详解
2016/09/11 Python
python爬虫 正则表达式使用技巧及爬取个人博客的实例讲解
2017/10/20 Python
flask使用session保存登录状态及拦截未登录请求代码
2018/01/19 Python
Python Cookie 读取和保存方法
2018/12/28 Python
python轮询机制控制led实例
2020/05/03 Python
Python日志处理模块logging用法解析
2020/05/19 Python
Python+kivy BoxLayout布局示例代码详解
2020/12/28 Python
SVG实现多彩圆环倒计时效果的示例代码
2017/11/21 HTML / CSS
世界上最大的在线旅行社新加坡网站:Expedia新加坡
2016/08/25 全球购物
巴西本土电商平台:Americanas
2020/06/21 全球购物
中学教师实习自我鉴定
2013/09/28 职场文书
技术总监的工作职责
2013/11/13 职场文书
教师对照四风自我剖析材料
2014/09/30 职场文书
社区活动总结范文
2015/05/07 职场文书
爱心捐款活动总结
2015/05/09 职场文书
国博复兴之路观后感
2015/06/02 职场文书
PHP实现rar解压读取扩展包小结
2021/06/03 PHP
python机器学习Github已达8.9Kstars模型解释器LIME
2021/11/23 Python