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中的History历史对象
Jan 16 Javascript
浅析JavaScript中的事件机制
Jun 04 Javascript
javascript每日必学之循环
Feb 19 Javascript
jQuery实现摸拟alert提示框
May 22 Javascript
jquery实现下拉框多选方法介绍
Jan 03 Javascript
mockjs,json-server一起搭建前端通用的数据模拟框架教程
Dec 18 Javascript
vue router 用户登陆功能的实例代码
Apr 24 Javascript
JavaScript 预解析的4种实现方法解析
Sep 03 Javascript
vue 解决文本框被键盘遮住的问题
Nov 06 Javascript
用js限制网页只在微信浏览器中打开(或者只能手机端访问)
Dec 24 Javascript
利用JavaScript写一个简单计算器
Nov 27 Javascript
AngularJS实现多级下拉框
Mar 25 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 压缩文件夹的类代码
2009/11/05 PHP
Windows下XDebug 手工配置与使用说明
2010/07/11 PHP
PHPUnit + Laravel单元测试常用技能
2019/11/06 PHP
js函数般调用正则
2008/04/08 Javascript
js jq 单击和双击区分示例介绍
2013/11/05 Javascript
基于javascript如何传递特殊字符
2015/11/30 Javascript
jQuery Html控件基本操作(日常收集整理)
2016/03/11 Javascript
js 自带的sort() 方法全面了解
2016/08/16 Javascript
浅析Ajax语法
2016/12/05 Javascript
BootStrap框架中的data-[ ]自定义属性理解(推荐)
2017/02/14 Javascript
详解vue事件对象、冒泡、阻止默认行为
2017/03/20 Javascript
Webpack 服务器端代码打包的示例代码
2017/09/19 Javascript
Vue 监听列表item渲染事件方法
2018/09/06 Javascript
在博客园博文中添加自定义右键菜单的方法详解
2020/02/05 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
python使用在线API查询IP对应的地理位置信息实例
2014/06/01 Python
Python StringIO模块实现在内存缓冲区中读写数据
2015/04/08 Python
深入解析Python编程中super关键字的用法
2016/06/24 Python
Python实现批量检测HTTP服务的状态
2016/10/27 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
python isinstance函数用法详解
2020/02/13 Python
Python基于yaml文件配置logging日志过程解析
2020/06/23 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Python字符串三种格式化输出
2020/09/17 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
创意活动策划书
2014/01/15 职场文书
女子职高个人自荐书
2014/02/01 职场文书
三八妇女节演讲稿
2014/05/27 职场文书
节约能源标语
2014/06/17 职场文书
餐饮店长岗位职责
2015/04/14 职场文书
党员个人承诺书
2015/04/27 职场文书
2015年端午节活动策划书
2015/05/05 职场文书
2015年卫生监督工作总结
2015/05/21 职场文书
少先队大队委竞选口号
2015/12/25 职场文书
合作协议书格式范本
2016/03/21 职场文书
蓝天保卫战收官在即 :15行业将开展环保分级评价
2019/07/19 职场文书