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
Nov 25 Javascript
Prototype 学习 工具函数学习($w,$F方法)
Jul 12 Javascript
js数组Array sort方法使用深入分析
Feb 21 Javascript
验证手机号码的JS方法分享
Sep 10 Javascript
jquery mobile 移动web(5)
Dec 20 Javascript
Jquery on方法绑定事件后执行多次的解决方法
Jun 02 Javascript
Jquery 整理元素选取、常用方法一览表
Nov 26 Javascript
JS实现经典的中国地区三级联动下拉菜单功能实例【测试可用】
Jun 06 Javascript
JS仿淘宝搜索框用户输入事件的实现
Jun 19 Javascript
用JavaScript做简易的购物车的代码示例
Oct 20 Javascript
layui添加动态菜单与选项卡 AJAX请求的例子
Sep 25 Javascript
Angular性能优化之第三方组件和懒加载技术
May 10 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 magic_quotes_gpc的使用方法详解
2013/06/24 PHP
PHP中使用xmlreader读取xml数据示例
2014/12/29 PHP
php通过ksort()函数给关联数组按照键排序的方法
2015/03/18 PHP
JS Jquery 遍历,筛选页面元素 自动完成(实现代码)
2013/07/08 Javascript
Extjs4实现两个GridPanel之间数据拖拽功能具体方法
2013/11/21 Javascript
javascript结合Canvas 实现简易的圆形时钟
2015/03/11 Javascript
js正则表达式中exec用法实例
2015/07/23 Javascript
jquery datatable服务端分页
2016/08/31 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
关于ES6箭头函数中的this问题
2018/02/27 Javascript
在vue中,v-for的索引index在html中的使用方法
2018/03/06 Javascript
JavaScript 跨域之POST实现方法
2018/05/07 Javascript
element-ui上传一张图片后隐藏上传按钮功能
2019/05/22 Javascript
微信自定义分享链接信息(标题,图片和内容)实现过程详解
2019/09/04 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
layui内置模块layim发送图片添加加载动画的方法
2019/09/23 Javascript
web.py在模板中输出美元符号的方法
2014/08/26 Python
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
使用python实现rsa算法代码
2016/02/17 Python
Python中numpy模块常见用法demo实例小结
2019/03/16 Python
scrapy-redis源码分析之发送POST请求详解
2019/05/15 Python
django 框架实现的用户注册、登录、退出功能示例
2019/11/28 Python
python实现处理mysql结果输出方式
2020/04/09 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
html5使用canvas压缩图片的示例代码
2018/09/11 HTML / CSS
Joie官方网上商店:购买服装和女装配饰
2018/06/05 全球购物
Omio英国:搜索并比较便宜的巴士、火车和飞机
2019/08/27 全球购物
高级护理专业毕业生推荐信
2013/12/25 职场文书
厂长助理岗位职责
2013/12/27 职场文书
公司开业庆典主持词
2014/03/21 职场文书
委托书范本
2014/04/02 职场文书
学校三节实施方案
2014/06/09 职场文书
毕业生登记表班级意见
2015/06/05 职场文书
导游词之铁岭象牙山
2019/12/06 职场文书
详解redis在微服务领域的贡献
2021/10/16 Redis