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 相关文章推荐
图像替换新技术 状态域方法
Jan 28 Javascript
js实现杯子倒水问题自动求解程序
Mar 25 Javascript
jquery中ajax函数执行顺序问题之如何设置同步
Feb 28 Javascript
node.js使用nodemailer发送邮件实例
Mar 10 Javascript
与Math.pow 相反的函数使用介绍
Aug 04 Javascript
jQuery实现首页顶部可伸缩广告特效代码
Apr 15 Javascript
Angularjs的ng-repeat中去除重复数据的方法
Aug 05 Javascript
vuejs父子组件通信的问题
Jan 11 Javascript
判断滚动条滑到底部触发事件(实例讲解)
Nov 15 Javascript
JavaScript实现图片的放大缩小及拖拽功能示例
May 14 Javascript
vue+element使用动态加载路由方式实现三级菜单页面显示的操作
Aug 04 Javascript
js实现上传图片到服务器
Apr 11 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二分法查找数组是否包含某一元素
2013/05/23 PHP
PHP弹出对话框技巧详细解读
2015/09/26 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
支持汉转拼和拼音分词的PHP中文工具类ChineseUtil
2018/02/23 PHP
php解压缩zip和rar压缩包文件的方法
2019/07/10 PHP
在PHP中实现使用Guzzle执行POST和GET请求
2019/10/15 PHP
javascript右下角弹层及自动隐藏(自己编写)
2013/11/20 Javascript
javascript 控制input只允许输入的各种指定内容
2014/06/19 Javascript
超链接的禁用属性Disabled使用示例
2014/07/31 Javascript
详解JavaScript中getFullYear()方法的使用
2015/06/10 Javascript
JavaScript实现复制或剪切内容到剪贴板功能的方法
2016/05/23 Javascript
js智能获取浏览器版本UA信息的方法
2016/08/08 Javascript
Javascript中arguments对象的详解与使用方法
2016/10/04 Javascript
详解jQuery选择器
2016/12/21 Javascript
jQuery层级选择器实例代码
2017/02/06 Javascript
利用JS hash制作单页Web应用的方法详解
2017/10/10 Javascript
基于JavaScript实现表格滚动分页
2017/11/22 Javascript
Puppeteer 爬取动态生成的网页实战
2018/11/14 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
JavaScript indexOf()原理及使用方法详解
2020/07/09 Javascript
[34:47]完美世界DOTA2联赛PWL S2 Magma vs LBZS 第一场 11.18
2020/11/18 DOTA
浅析Python中的for 循环
2016/06/09 Python
python发送邮件脚本
2018/05/22 Python
使用pip发布Python程序的方法步骤
2018/10/11 Python
python 实现图片批量压缩的示例
2020/12/18 Python
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
html5指南-2.如何操作document metadata
2013/01/07 HTML / CSS
香港永安旅游网:Wing On Travel
2017/04/10 全球购物
银行个人求职自荐信范文
2013/12/16 职场文书
给领导的致歉信范文
2014/01/13 职场文书
内刊编辑求职自荐书范文
2014/02/19 职场文书
环保倡议书400字
2014/05/15 职场文书
乐山大佛导游词
2015/02/02 职场文书
实习单位鉴定意见
2015/06/04 职场文书
VMware虚拟机安装 Windows Server 2022的详细图文教程
2022/09/23 Servers