jQuery对象的链式操作用法分析


Posted in Javascript onMay 10, 2016

本文实例讲述了jQuery对象的链式操作用法。分享给大家供大家参考,具体如下:

jQuery对象的链式操作

首先来看一个例子:

$("#myphoto").css("border","solid 2px#FF0000").attr("alt"," good");

对一个jQuery对象先调用了css()函数修改样式,然后使用attr()函数修改属性,这种调用方式象链一样,所以称为"链式操作"。

链式操作能够让代码变得简洁,因为往往可以在一条语句中实现以往多条语句才能完成的任务。比如如果不使用链式操作,需要用两条语句才能完成上面的任务:

$("#myphoto").css("border","solid 2px#FF0000");
$("#myphoto").arrt("alt","good");

除了增加了代码量,还调用了两次选择器,降低了速度。

在一个较短的链式操作中,往往语句比较清晰,可以分步骤地对jQuery对象实现各种操作。但是链式操作不应该太长,否则会造成语句难以理解,因为要查看jQuery对象当前的状态并不是容易的事,尤其如果涉及jQuery对象中元素的增删操作是更加难以判断。

并不是所有的jQuery函数都可以使用链式操作。这与链式操作的原理有关,之所以可以实现链式操作是因为其中的每个函数返回的都是jQuery对象本身。在jQuery类库的内部实现中,虽然很多的函数都返回jQuery对象本身,但都是通过调用内部有限的几个函数实现的,比如attr()函数设置属性石,实际上最后调用了"jQuery.each(object,callback,args)"方法。注意此方法不是jQuery对象方法,jQuery对象方法也有一个each()函数,为"jQuery.fn.each(callback,args)",此函数最后同样调用jQuery.each函数:

Each:function(callback,args){
  ReturnjQuery.each(this,callback,args);
}

下面看一看jQuery.each函数的返回结果:

Each.function(object,callback,args){
  Retumobject;
}

Object是jQuery.fn对象,即jQuery对象。最后返回的还是jQuery对象。

可以使用下面的原则判断一个函数返回的时候是jQuery对象,即是否可以用于链式操作。

除了获取某些数据的函数,比如获取属性值"attr(name)",获取集合大小"size()"这些函数明显是返回数据的。除了这些函数之外的jQuery函数都可以用于链式操作,比如设置属性"attr(name.value)"。

"$"变量的使用

"$"变量是"jQuery"变量的引用。"jQuery"变量是全局变量,jQuery对象是指"jQUery.fn",不要混淆。"jQuery"变量类似于静态类,上面的方法都是静态方法,可以在任何时刻调用。比如"jQuery.each"。"jQuery.fn"是实例方法,只能在jQuery对象上调用。比如"jQuery.fn.each()"方法只能通过"$('#id').each"这种形式调用。

前面提到,可以使用"$"代替"jQuery",因为在jQuery的内部有如下实现:

jQuery=window.jQuery=window.$

所以"$"变量和"jQuery"变量实际上是Window对象的属性,也就是全局变量。可以在页面上得任何地方调用。

希望本文所述对大家jquery程序设计有所帮助。

Javascript 相关文章推荐
js资料prototype 属性
Mar 13 Javascript
extjs 的权限问题 要求控制的对象是 菜单,按钮,URL
Mar 09 Javascript
javascript白色简洁计算器
May 04 Javascript
JavaScript ES5标准中新增的Array方法
Jun 28 Javascript
vue-resourse将json数据输出实例
Mar 08 Javascript
AngularJS双向绑定和依赖反转实例详解
Apr 15 Javascript
JS中的数组转变成JSON格式字符串的方法
May 09 Javascript
基于Vue的ajax公共方法(详解)
Jan 20 Javascript
详解create-react-app 2.0版本如何启用装饰器语法
Oct 23 Javascript
javascript绘制简单钟表效果
Apr 07 Javascript
浅谈vue中使用编辑器vue-quill-editor踩过的坑
Aug 03 Javascript
nuxt 自定义 auth 中间件实现令牌的持久化操作
Nov 05 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 #Javascript
Bootstrap按钮下拉菜单组件详解
May 10 #Javascript
JavaScript编写页面半透明遮罩效果的简单示例
May 09 #Javascript
JavaScript编写点击查看大图的页面半透明遮罩层效果实例
May 09 #Javascript
使用CSS+JavaScript或纯js实现半透明遮罩效果的实例分享
May 09 #Javascript
Bootstrap模仿起筷首页效果
May 09 #Javascript
基于jquery实现智能表单验证操作
May 09 #Javascript
You might like
PHP制作图型计数器的例子
2006/10/09 PHP
PHP+MYSQL开发工具及资源收藏
2007/01/02 PHP
PHP实现生成透明背景的PNG缩略图函数分享
2014/07/08 PHP
PHP中empty,isset,is_null用法和区别
2017/02/19 PHP
javascript 利用Image对象实现的埋点(某处的点击数)统计
2012/12/28 Javascript
jquery实现倒计时代码分享
2014/06/13 Javascript
jQuery对象的selector属性用法实例
2014/12/27 Javascript
JavaScript判断用户是否对表单进行了修改的方法
2015/03/18 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
AngularJS基础 ng-src 指令简单示例
2016/08/03 Javascript
BootStrap中按钮点击后被禁用按钮的最佳实现方法
2016/09/23 Javascript
JS实现的简单拖拽购物车功能示例【附源码下载】
2018/01/03 Javascript
使用jquery模拟a标签的click事件无法实现跳转的解决
2018/12/04 jQuery
ES6 对象的新功能与解构赋值介绍
2019/02/05 Javascript
extract-text-webpack-plugin用法详解
2019/02/14 Javascript
Python httplib模块使用实例
2015/04/11 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python版本单链表实现代码
2018/09/28 Python
python使用百度文字识别功能方法详解
2019/07/23 Python
Python搭建代理IP池实现获取IP的方法
2019/10/27 Python
Python API自动化框架总结
2019/11/12 Python
Python字节单位转换实例
2019/12/05 Python
Flask中endpoint的理解(小结)
2019/12/11 Python
Python-jenkins模块获取jobs的执行状态操作
2020/05/12 Python
Marmot土拨鼠官网:美国专业户外运动品牌
2018/01/11 全球购物
爱尔兰最大的体育零售商:Life Style Sports
2019/06/12 全球购物
巴西网上药店:Drogaria Araujo
2021/01/06 全球购物
老师给学生的表扬信
2014/01/17 职场文书
黄河象教学反思
2014/02/10 职场文书
党员创先争优承诺书
2014/03/26 职场文书
产品质量保证书
2014/04/29 职场文书
先进党支部事迹材料
2014/12/24 职场文书
应届毕业生自荐信
2015/03/04 职场文书
2015年化验员工作总结
2015/04/10 职场文书
宝葫芦的秘密观后感
2015/06/11 职场文书
导游词之南昌滕王阁
2019/11/29 职场文书