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 相关文章推荐
PHP 与 js的通信(via ajax,json)
Nov 16 Javascript
JS操作Cookies包括(读取添加与删除)
Dec 26 Javascript
jquery实现图片滚动效果的简单实例
Nov 23 Javascript
Javascript中With语句用法实例
May 14 Javascript
JavaScript中用于四舍五入的Math.round()方法讲解
Jun 15 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
AngularJS中watch监听用法分析
Nov 04 Javascript
bootstrapValidator bootstrap-select验证不可用的解决办法
Jan 11 Javascript
jquery实现下拉菜单的手风琴效果
Jul 23 jQuery
使用vue的transition完成滑动过渡的示例代码
Jun 25 Javascript
简单了解JavaScript sort方法
Nov 25 Javascript
jQuery treeview树形结构应用
Mar 24 jQuery
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对文件进行加锁、解锁实例
2015/01/23 PHP
php将HTML表格每行每列转为数组实现采集表格数据的方法
2015/04/03 PHP
php版阿里大于(阿里大鱼)短信发送实例详解
2016/11/30 PHP
mysqli扩展无法在PHP7下升级问题的解决
2019/09/10 PHP
根据分辨率不同,调用不同的css文件
2006/07/07 Javascript
让图片旋转任意角度及JQuery插件使用介绍
2013/03/20 Javascript
jQuery过滤选择器用法分析
2015/02/10 Javascript
jQuery进行组件开发完整实例
2015/12/15 Javascript
JavaScript生成二维码图片小结
2015/12/27 Javascript
Canvas + JavaScript 制作图片粒子效果
2017/02/08 Javascript
vue.js 初体验之Chrome 插件开发实录
2017/05/13 Javascript
JS中使用textPath实现线条上的文字
2017/12/25 Javascript
layer弹出子iframe层父子页面传值的实现方法
2018/11/22 Javascript
Vue实现一个图片懒加载插件
2019/03/11 Javascript
js时间戳转yyyy-MM-dd HH-mm-ss工具类详解
2019/04/30 Javascript
了解javascript中的Dom操作
2019/05/27 Javascript
15分钟上手vue3.0(小结)
2020/05/20 Javascript
三步搞定:Vue.js调用Android原生操作
2020/09/07 Javascript
JavaScript实现多层颜色选项卡嵌套
2020/09/21 Javascript
跟老齐学Python之类的细节
2014/10/13 Python
Python中的各种装饰器详解
2015/04/11 Python
Python设计模式之模板方法模式实例详解
2019/01/17 Python
HTML5的革新 结构之美
2011/06/20 HTML / CSS
微软台湾官方网站:Microsoft台湾
2018/08/15 全球购物
Raffaello Network德国:意大利拉斐尔时尚购物网
2019/05/01 全球购物
Kathmandu新西兰官网:新西兰户外运动品牌
2019/07/27 全球购物
垃圾回收的优点和原理
2014/05/16 面试题
预备党员党校学习自我评价分享
2013/11/12 职场文书
家长给孩子的表扬信
2014/01/17 职场文书
气象学专业个人求职信
2014/04/22 职场文书
大学社团招新的通讯稿
2014/09/10 职场文书
有关九一八事变的演讲稿
2014/09/14 职场文书
投标单位介绍信
2015/05/05 职场文书
消防安全培训工作总结
2015/10/23 职场文书
python中print格式化输出的问题
2021/04/16 Python
带你了解CSS基础知识,样式
2021/07/21 HTML / CSS