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 相关文章推荐
深入学习JavaScript中的原型prototype
Aug 13 Javascript
js clearInterval()方法的定义和用法
Nov 11 Javascript
jQuery实现的兼容性浮动层示例
Aug 02 Javascript
AngularJS 视图详解及示例代码
Aug 17 Javascript
JS简单随机数生成方法
Sep 05 Javascript
快速解决js开发下拉框中blur与click冲突
Oct 10 Javascript
angularjs 表单密码验证自定义指令实现代码
Oct 27 Javascript
Javascript 动态改变imput type属性
Nov 01 Javascript
jQuery分页插件jquery.pagination.js使用方法解析
Feb 09 Javascript
使用OPENLAYERS3实现点选的方法
Sep 24 Javascript
javaScript手机号码校验工具类PhoneUtils详解
Dec 08 Javascript
vue实现图书管理系统
Dec 29 Vue.js
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检测字符串是否为UTF8编码的常用方法
2014/11/21 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
Javascript面象对象成员、共享成员变量实验
2010/11/19 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
2013/04/21 Javascript
jQuery fadeTo方法调整图片的透明度使用介绍
2013/05/06 Javascript
用JavaScript实现用一个DIV来包装文本元素节点
2014/09/09 Javascript
jQuery处理图片加载失败的常用方法
2015/06/08 Javascript
3个可以改善用户体验的AngularJS指令介绍
2015/06/18 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
最简单的JavaScript图片轮播代码(两种方法)
2015/12/18 Javascript
关于JS变量和作用域详解
2016/07/28 Javascript
JavaScript数据结构之二叉树的删除算法示例
2017/04/13 Javascript
js实现鼠标移动到图片产生遮罩效果
2017/10/21 Javascript
简述Angular 5 快速入门
2017/11/04 Javascript
Node.JS段点续传:Nginx配置文件分段下载功能的实现方法
2018/03/12 Javascript
微信小程序收藏功能的实现代码
2018/06/12 Javascript
layui switch 开关监听 弹出确定状态转换的例子
2019/09/21 Javascript
electron 安装,调试,打包的具体使用
2019/11/06 Javascript
[47:10]完美世界DOTA2联赛PWL S3 LBZS vs Rebirth 第二场 12.16
2020/12/18 DOTA
python list 合并连接字符串的方法
2013/03/09 Python
Python记录详细调用堆栈日志的方法
2015/05/05 Python
tensorflow实现简单的卷积网络
2018/05/24 Python
Pandas中DataFrame基本函数整理(小结)
2020/07/20 Python
video下autoplay属性无效的解决方法(添加muted属性)
2020/05/19 HTML / CSS
越南综合购物网站:Lazada越南
2019/06/10 全球购物
宏碁西班牙官网:Acer西班牙
2021/01/08 全球购物
网络安全方面的面试题
2015/11/04 面试题
党员公开承诺书
2014/03/25 职场文书
大学生活动总结怎么写
2014/04/29 职场文书
网络文明传播志愿者活动方案
2014/08/20 职场文书
预备党员学习十八届三中全会精神思想汇报
2014/09/13 职场文书
2014年后勤工作总结范文
2014/12/16 职场文书
试用期自我评价范文
2015/03/10 职场文书
Python 数据科学 Matplotlib图库详解
2021/07/07 Python
python模拟浏览器 使用selenium进入好友QQ空间并留言
2022/04/12 Python