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 相关文章推荐
DOM下的节点属性和操作小结
May 14 Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
js 触发select onchange事件代码
Mar 20 Javascript
javascript 判断整数方法分享
Dec 16 Javascript
AngularJS入门教程之XHR和依赖注入详解
Aug 18 Javascript
JavaScript中push(),join() 函数 实例详解
Sep 06 Javascript
利用BootStrap的Carousel.js实现轮播图动画效果
Dec 21 Javascript
从零学习node.js之简易的网络爬虫(四)
Feb 22 Javascript
jQuery实现动态删除LI的方法
May 30 jQuery
一份超级详细的Vue-cli3.0使用教程【推荐】
Nov 15 Javascript
JavaScript实现Tab选项卡切换
Feb 13 Javascript
JS开发前端团队展示控制器来为成员引流
Aug 14 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
Thinkphp中的volist标签用法简介
2014/06/18 PHP
Yii2.0框架behaviors方法使用实例分析
2019/09/30 PHP
laravel 根据不同组织加载不同视图的实现
2019/10/14 PHP
JavaScript基本概念初级讲解论坛贴的学习记录
2009/02/22 Javascript
提高javascript效率 一次判断,而不要次次判断
2012/03/30 Javascript
Javascript中call与apply的学习笔记
2014/09/22 Javascript
js闭包实现按秒计数
2015/04/23 Javascript
js实现一个链接打开两个链接地址的方法
2015/05/12 Javascript
关于微信中a链接无法跳转问题
2016/08/02 Javascript
jquery实现拖动效果
2016/08/10 Javascript
JavaScript 中有关数组对象的方法(详解)
2016/08/15 Javascript
ionic2打包android时gradle无法下载的解决方法
2017/04/05 Javascript
javaScript手机号码校验工具类PhoneUtils详解
2017/12/08 Javascript
Angular4集成ng2-file-upload的上传组件
2018/03/14 Javascript
JavaScript累加、迭代、穷举、递归等常用算法实例小结
2018/05/08 Javascript
webpack打包html里面img后src为“[object Module]”问题
2019/12/22 Javascript
JavaScript对象字面量和构造函数原理与用法详解
2020/04/18 Javascript
[54:30]Liquid vs Newbee 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python2.x实现人民币转大写人民币
2018/06/20 Python
python中调试或排错的五种方法示例
2019/09/12 Python
Python数据库小程序源代码
2019/09/15 Python
基于python cut和qcut的用法及区别详解
2019/11/22 Python
PyTorch 普通卷积和空洞卷积实例
2020/01/07 Python
Python Tkinter Entry和Text的添加与使用详解
2020/03/04 Python
k-means 聚类算法与Python实现代码
2020/06/01 Python
python中元组的用法整理
2020/06/15 Python
canvas需要在标签里直接定义宽高
2014/12/17 HTML / CSS
法国珠宝店:CLEOR
2017/01/29 全球购物
丝芙兰意大利官方网站:Sephora.it
2019/12/13 全球购物
有模特经验的简历自我评价
2013/09/19 职场文书
大学毕业登记表自我鉴定
2013/10/09 职场文书
工商管理实习生自我鉴定范文
2013/12/18 职场文书
财务管理职业生涯规划范文
2013/12/27 职场文书
怎样客观的做好自我评价
2013/12/28 职场文书
学生爱国演讲稿
2014/01/14 职场文书
同学联谊会邀请函
2019/06/24 职场文书