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 相关文章推荐
prototype Element学习笔记(篇一)
Oct 26 Javascript
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
Aug 28 Javascript
原生Js页面滚动延迟加载图片实现原理及过程
Jun 24 Javascript
jquery.post用法之type设置问题
Feb 24 Javascript
JQuery选中checkbox方法代码实例(全选、反选、全不选)
Apr 27 Javascript
JS 对象(Object)和字符串(String)互转方法
May 20 Javascript
基于jquery实现的银行卡号每隔4位自动插入空格的实现代码
Nov 22 Javascript
jQuery实现的模拟弹出窗口功能示例
Nov 24 Javascript
js按条件生成随机json:randomjson实现方法
Apr 07 Javascript
讲解vue-router之什么是嵌套路由
May 28 Javascript
vuejs实现折叠面板展开收缩动画效果
Sep 06 Javascript
一文秒懂JavaScript构造函数、实例、原型对象以及原型链
Aug 25 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求小于1000的所有水仙花数的代码
2012/01/10 PHP
细谈php中SQL注入攻击与XSS攻击
2012/06/10 PHP
smarty实现多级分类的方法
2014/12/05 PHP
php实现分页显示
2015/11/03 PHP
PHP使用mkdir创建多级目录的方法
2015/12/22 PHP
php封装的图片(缩略图)处理类完整实例
2016/10/19 PHP
PHP substr()函数参数解释及用法讲解
2017/11/23 PHP
phpstorm 正则匹配删除空行、注释行(替换注释行为空行)
2018/01/21 PHP
ThinkPHP防止重复提交表单的方法实例分析
2018/05/10 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
让FireFox支持innerText的实现代码
2009/12/01 Javascript
jquery easyui的tabs使用时的问题
2010/03/23 Javascript
jquery.validate使用攻略 第三部
2010/07/01 Javascript
基于jQuery的message插件实现右下角弹出消息框
2011/01/11 Javascript
nullJavascript中创建对象的五种方法实例
2013/05/07 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
Javascript实现获取窗口的大小和位置代码分享
2014/12/04 Javascript
Nodejs初级阶段之express
2015/11/23 NodeJs
JavaScript与HTML的结合方法详解
2015/11/23 Javascript
极易被忽视的javascript面试题七问七答
2016/02/15 Javascript
Node学习记录之cluster模块
2017/05/31 Javascript
AngularJS 将再发布一个重要版本 然后进入长期支持阶段
2018/01/31 Javascript
微信小程序合法域名配置方法
2019/05/06 Javascript
JS实现可用滑块滑动的缓动图代码
2019/09/01 Javascript
Python+django实现简单的文件上传
2016/08/17 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Python如何优雅获取本机IP方法
2019/11/10 Python
Python实现一个优先级队列的方法
2020/07/31 Python
CSS3选择器新增问题的实现
2021/01/21 HTML / CSS
详解Html5 监听拦截Android返回键方法
2018/04/18 HTML / CSS
澳洲国民品牌乡村路折扣店:Country Road & Trenery Outlet
2018/04/19 全球购物
中专生自我鉴定书范文
2013/12/28 职场文书
课外科技活动总结
2014/08/27 职场文书
Python面向对象之内置函数相关知识总结
2021/06/24 Python
缓存替换策略及应用(以Redis、InnoDB为例)
2021/07/25 Redis
mysql的单列多值存储实例详解
2022/04/05 MySQL