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编程小常识很有用
Nov 26 Javascript
ExtJS中文乱码之GBK格式编码解决方案及代码
Jan 20 Javascript
JS写的贪吃蛇游戏(个人练习)
Jul 08 Javascript
JS获取当前日期和时间的简单实例
Nov 19 Javascript
JQUERY dialog的用法详细解析
Dec 19 Javascript
JavaScript中的Object对象学习教程
May 20 Javascript
jQuery多级联动下拉插件chained用法示例
Aug 20 Javascript
javascript实现右下角广告框效果
Feb 01 Javascript
Parcel.js + Vue 2.x 极速零配置打包体验教程
Dec 24 Javascript
VueJs里利用CryptoJs实现加密及解密的方法示例
Apr 29 Javascript
原生js实现针对Dom节点的CRUD操作示例
Aug 26 Javascript
jQuery实现鼠标拖拽登录框移动效果
Sep 13 jQuery
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 数组的一个悲剧?
2011/05/11 PHP
多个PHP中文字符串截取函数
2013/11/12 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
PHP批量获取网页中所有固定种子链接的方法
2016/11/18 PHP
php正确输出json数据的实例讲解
2018/08/21 PHP
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
超炫的jquery仿flash导航栏特效
2014/11/11 Javascript
node.js超时timeout详解
2014/11/26 Javascript
jQuery实现的登录浮动框效果代码
2015/09/26 Javascript
Vue.js每天必学之方法与事件处理器
2016/09/06 Javascript
JavaScript的继承实现小结
2017/05/07 Javascript
python写的ARP攻击代码实例
2014/06/04 Python
Python可变参数用法实例分析
2017/04/02 Python
numpy排序与集合运算用法示例
2017/12/15 Python
python中的二维列表实例详解
2018/06/19 Python
钉钉群自定义机器人消息Python封装的实例
2019/02/20 Python
python 字典套字典或列表的示例
2019/12/16 Python
使用 pytorch 创建神经网络拟合sin函数的实现
2020/02/24 Python
python实现逢七拍腿小游戏的思路详解
2020/05/26 Python
Cpython解释器中的GIL全局解释器锁
2020/11/09 Python
英国高街品牌:Miss Selfridge(塞尔弗里奇小姐)
2016/09/21 全球购物
Ooni英国官网:披萨烤箱
2020/05/31 全球购物
优秀医生事迹材料
2014/02/12 职场文书
白血病募捐倡议书
2014/05/14 职场文书
纪检监察建议书
2014/05/19 职场文书
小学综治宣传月活动总结
2014/07/02 职场文书
机关党员三严三实心得体会
2014/10/13 职场文书
中学生检讨书范文
2014/11/03 职场文书
高三英语复习计划
2015/01/19 职场文书
小学生学习保证书
2015/02/26 职场文书
《秋天的雨》教学反思
2016/02/19 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
Nginx 反向代理解决跨域问题多种情况分析
2022/01/18 Servers
Python必备技巧之字符数据操作详解
2022/03/23 Python
vue elementUI批量上传文件
2022/04/26 Vue.js
CSS 鼠标点击拖拽效果的实现代码
2022/12/24 HTML / CSS