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 相关文章推荐
javascrpt绑定事件之匿名函数无法解除绑定问题
Dec 06 Javascript
Javascript中this的用法详解
Sep 22 Javascript
JavaScript动态修改网页元素内容的方法
Mar 21 Javascript
javascript实现简单的鼠标拖动效果实例
Apr 10 Javascript
jquery悬浮提示框完整实例
Jan 13 Javascript
jquery对象访问是什么及使用方法介绍
May 03 Javascript
Bootstrap按钮下拉菜单组件详解
May 10 Javascript
Web打印解决方案之普通报表打印功能
Aug 29 Javascript
微信扫码支付零云插件版实例详解
Apr 26 Javascript
JavaScript正则表达式校验与递归函数实际应用实例解析
Aug 04 Javascript
vue2.0+koa2+mongodb实现注册登录
Apr 10 Javascript
JS相册图片抖动放大展示效果的示例代码
Jan 29 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 用sock技术发送邮件的函数
2007/07/21 PHP
php实现通用的信用卡验证类
2015/03/24 PHP
PHP5.5基于mysqli连接MySQL数据库和读取数据操作实例详解
2019/02/16 PHP
取消选中单选框radio的三种方式示例介绍
2013/12/23 Javascript
解决自定义$(id)的方法与jquery选择器$冲突的问题
2014/06/14 Javascript
Angularjs基础知识及示例汇总
2015/01/22 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
Bootstrap 组件之按钮(二)
2016/05/11 Javascript
AngularJS ng-style中使用filter
2016/09/21 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
Bootstrap源码学习笔记之bootstrap进度条
2016/12/24 Javascript
B/S(Web)实时通讯解决方案分享
2017/04/06 Javascript
浅谈struts1 & jquery form 文件异步上传
2017/05/25 jQuery
vue如何使用 Slot 分发内容实例详解
2017/09/05 Javascript
javascript自定义事件功能与用法实例分析
2017/11/08 Javascript
获取本机IP地址的实例(JavaScript / Node.js)
2017/11/24 Javascript
JavaScript实现浅拷贝与深拷贝的方法分析
2018/07/05 Javascript
vue全局使用axios的方法实例详解
2018/11/22 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
[01:02:04]EG vs Liquid 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.23
2019/09/05 DOTA
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Python中作用域的深入讲解
2018/12/10 Python
python简单鼠标自动点击某区域的实例
2019/06/25 Python
python调用webservice接口的实现
2019/07/12 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
2020/02/13 Python
Python的Django框架实现数据库查询(不返回QuerySet的方法)
2020/05/19 Python
css3 旋转按钮 使用CSS3创建一个旋转可变色按钮
2012/12/31 HTML / CSS
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
万代美国官网:PREMIUM BANDAI USA
2020/09/11 全球购物
C#中类(class)与结构(struct)的异同
2013/11/03 面试题
预备党员转正思想汇报
2014/01/12 职场文书
学校搬迁方案
2014/06/15 职场文书
2014年校务公开工作总结
2014/12/18 职场文书
班级元旦晚会开幕词
2016/03/04 职场文书
如何起草一份正确的合伙创业协议书?
2019/07/04 职场文书
SQL Server中交叉联接的用法详解
2021/04/22 SQL Server