jQuery学习笔记 更改jQuery对象


Posted in Javascript onSeptember 19, 2012

jQuery代码的任务就是生成jQuery对象A,操作jQuery对象A;生成jQuery对象B,操作jQuery对象B……但是若此过程中,对象A、B……之间有某种关系,那么完全没必要一个个去$(selector),这很繁琐的。因此jQuery提供了一些方法,使流程变为生成jQuery对象A,操作jQuery对象A;更改为jQuery对象B,操作jQuery对象B……

一个jQuery对象,既要进行N次操作,又要进行M次更改。因此有必要将生成的jQuery对象存储在一个变量中,多次调用。然而,试想每进行一次操作和更改就得声明一个新变量,这也很繁琐啊。所以jQuery采取了链式操作的方法,即执行操作后返回操作对象本身,于是可以持续执行下一个操作,直到需要更改对象时方执行更改,然后返回更改后对象。这实际上就是一种函数式思维。

举个例子,左右对比一下:

一般调用 链式调用
a=$(“div”); a.addClass(“class”); b=a.children(“ul”); b.show();                          c=a.siblings(); c.removeClass(“class”); $(“div”).addClass(“class”) .children(“ul”).show().end() .siblings().removeClass(“class”);

接下来就介绍一下更改jQuery对象的各种方法:

更改为后代元素集合

方法 描述 等价
children(selector) 在原先元素的后代元素中,选取匹配selector的元素。若不设置参数,children()等价于children(*),选取原先元素的所有子元素 $(selector1).children(selector2)≡$(selector1>selector2)
find(selector) 在原先元素的后代元素中,选取匹配selector的元素。若不设置参数,find()等价于find(“:not(*)”),不会选取原先元素的任何后代元素 $(selector1).find(selector2)≈$(selector1 selector2)。若参数使用基本过滤选择器,不是在全部后代元素中选取过滤匹配元素,而是在每一个后代元素中分别选取过滤匹配元素
contents() 选取原先元素的子元素或文本块

 

更改为祖先元素集合

方法 描述
parent(selector) 在原先元素的父元素中,选取匹配selector的元素。若不设置参数,parent()等价于parent(“*”),选取原先元素的所有父元素
parents(selector) 在原先元素的祖先元素中,选取匹配selector的元素。若不设置参数,parents()等价于parents(“*”),选取原先元素的所有祖先元素
parentsUntil(selector) 选取原先元素的祖先元素,直到遇到匹配selector的元素为止,且不包括该元素。若不设置参数,parentsUntil()等价于parents(),选取原先元素的所有祖先元素
offsetParents() 选取原先元素的最近祖先定位元素,且该元素CSS属性display不能为none。定位元素指CSS属性position
closest(selector) 在原先元素及其祖先元素中,选取匹配selector的最近元素

 

更改为兄弟元素集合

方法              描述 等价
next(selector) 在原先元素后面的第一个兄弟元素中,选取匹配selector的元素。若不设置参数,next()等价于next(“*”),选取原先元素后面的第一个兄弟元素 $(selector1).next(selector2)≡$(selector1+selector2)
prev(selector) 在原先元素前面的第一个兄弟元素中,选取匹配selector的元素。若不设置参数,prev()等价于prev(“*”),选取原先元素前面的第一个兄弟元素
nextAll(selector) 在原先元素后面的兄弟元素中,选取匹配selector的元素。若不设置参数,nextAll()等价于nextAll(“*”),选取原先元素后面的所有兄弟元素 $(selector1).nextAll(selector2)≡$(selector1~selector2)
prevAll(selector) 在原先元素前面的兄弟元素中,选取匹配selector的元素。若不设置参数,prevAll()等价于prevAll(“*”),选取原先元素前面的所有兄弟元素
siblings(selector) 在原先元素的兄弟元素中,选取匹配selector的元素。若不设置参数,siblings()等价于siblings(“*”),选取原先元素的所有兄弟元素
nextUntil(selector) 选取原先元素后面的兄弟元素,直到遇到匹配selector的元素为止,且不包括该元素。若不设置参数,nextUntil()等价于nextAll(),选取原先元素后面的所有兄弟元素
prevUntil(selector) 选取原先元素前面的兄弟元素,直到遇到匹配selector的元素为止,且不包括该元素。若不设置参数,prevUntil()等价于prevAll(),选取原先元素前面的所有兄弟元素

 

更改为更多元素集合

方法              描述 等价
add(selector) 在原先元素的基础上添加选取匹配selector的元素 $(selector1).add(selector2)≡$(selector1,selector2)
andSelf() 更改为后代元素、祖先元素、兄弟元素的这些操作,会在原先元素以外选取元素。可用于将原先元素和更改操作选取的元素合并在一起

 

更改为部分元素集合

方法              描述 等价
eq(index) 在原先元素中筛选索引值等于index的元素,索引值从0开始正数,也可以从-1开始倒数,但不能混用 $(selector).eq(index)≡$(selector:eq(index))
first() 在原先元素中筛选第一个元素,等同于eq(0) $(selector).first()≡$(selector:first)
last() 在原先元素中筛选最后一个元素,等同于eq(-1) $(selector).last()≡$(selector:last)
slice(start,[end]) 在原先元素中筛选索引值从start到end-1的元素。若不传入end,则筛选索引值大于等于start的元素
filter(selector) 在原先元素中筛选匹配selector的元素
filter(fn(index)) 使用函数筛选,对于索引值等于index的元素,若函数返回true,该元素包含在筛选集合中,否则排除在外 可实现$(selector:even(index))、$(selector:odd(index))、 $(selector:gt(index))、 $(selector:lt(index))等
not(selector) 在原先元素中筛选不匹配selector的元素 $(selector1).not(selector2)≡$(selector1:not(selector2))
not(fn(index)) 使用函数筛选,对于索引值等于index的元素,若函数返回true,该元素排除在筛选集合外,否则包含在内 可实现$(selector:even(index))、$(selector:odd(index))、 $(selector:gt(index))、 $(selector:lt(index))等
has(selector) 在原先元素中筛选出拥有匹配selector后代元素的元素 $(selector1).has(selector2)≡$(selector1:has(selector2))

 

还原jQuery对象

方法              描述
end() 使执行更改jQuery对象操作后的选取元素还原到更改之前。若希望还原多个更改操作,则多次调用,直到最后会返回空集
Javascript 相关文章推荐
JS数学函数Exp使用说明
Aug 09 Javascript
js模仿php中strtotime()与date()函数实现方法
Aug 11 Javascript
浅析Javascript ES6新增值比较函数Object.is
Aug 24 Javascript
使用bootstrapValidator插件进行动态添加表单元素并校验
Sep 28 Javascript
js利用clipboardData实现截屏粘贴功能
Oct 12 Javascript
Bootstrap jquery.twbsPagination.js动态页码分页实例代码
Feb 20 Javascript
bootstrap选项卡扩展功能详解
Jun 14 Javascript
关于vue面试题汇总
Mar 20 Javascript
微信小程序实现图片上传功能
May 28 Javascript
Vue动态创建注册component的实例代码
Jun 14 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 Javascript
javascript中Set、Map、WeakSet、WeakMap区别
Dec 24 Javascript
jQuery学习笔记 操作jQuery对象 文档处理
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 属性处理
Sep 19 #Javascript
jQuery学习笔记 操作jQuery对象 CSS处理
Sep 19 #Javascript
firefox下jQuery UI Autocomplete 1.8.*中文输入修正方法
Sep 19 #Javascript
dotopAlert 提示用户需安装播放器的代码
Sep 17 #Javascript
点弹代码 点击页面任何位置都可以弹出页面效果代码
Sep 17 #Javascript
js函数的引用, 关于内存的开销
Sep 17 #Javascript
You might like
发挥语言的威力--融合PHP与ASP
2006/10/09 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
PHP实现的迪科斯彻(Dijkstra)最短路径算法实例
2017/09/16 PHP
javascript 广告后加载,加载完页面再加载广告
2010/11/25 Javascript
JS打印gridview实现原理及代码
2013/02/05 Javascript
文本有关的样式和jQuery求对象的高宽问题分别说明
2013/08/30 Javascript
javascript在子页面中函数无法调试问题解决方法
2014/01/17 Javascript
Javascript表单验证要注意的事项
2014/09/29 Javascript
javascript事件模型实例分析
2015/01/30 Javascript
javascript实现省市区三级联动下拉框菜单
2015/11/17 Javascript
JavaScript lodash常见用法系列小结
2016/08/24 Javascript
EL表达式截取字符串的函数说明
2017/09/22 Javascript
vue elementui el-form rules动态验证的实例代码详解
2019/05/23 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
js校验开始时间和结束时间
2020/05/26 Javascript
Antd的Table组件嵌套Table以及选择框联动操作
2020/10/24 Javascript
Vue——解决报错 Computed property "****" was assigned to but it has no setter.
2020/12/19 Vue.js
[03:10]超级美酒第四天 fy拉比克秀 大合集
2018/06/05 DOTA
python爬虫爬取某站上海租房图片
2018/02/04 Python
pandas中的DataFrame按指定顺序输出所有列的方法
2018/04/10 Python
Python制作微信好友背景墙教程(附完整代码)
2019/07/17 Python
Python应用实现双指数函数及拟合代码实例
2020/06/19 Python
如何在python中实现线性回归
2020/08/10 Python
最新PyCharm从安装到PyCharm永久激活再到PyCharm官方中文汉化详细教程
2020/11/17 Python
详解Python中的Lock和Rlock
2021/01/26 Python
css3绘制天猫logo实现代码
2012/11/06 HTML / CSS
阿拉伯世界最大的电子商务网站:Souq沙特阿拉伯
2016/10/28 全球购物
viagogo波兰票务平台:演唱会、体育比赛、戏剧门票
2018/04/23 全球购物
Harrods美国:英国最大的百货公司
2018/11/04 全球购物
为什么需要版本控制
2016/10/28 面试题
绘画设计学生的个人自我评价
2013/09/20 职场文书
考试不及格检讨书
2014/01/09 职场文书
学徒工职责
2014/03/06 职场文书
军训口号
2014/06/13 职场文书
公司人力资源管理制度
2015/08/05 职场文书
2016社区平安家庭事迹材料
2016/02/26 职场文书