深入理解$.each和$(selector).each


Posted in Javascript onMay 15, 2016

$.each:该方法用于遍历任何集合,包括数组和对象

$(selector).each:该方法用于遍历Jquery对象

语法:$.each(obj,callback,args)

①遍历数组

var arry = ["a","b","c","d",…];

$.each(arry,function(index,value){…})

回调函数中:index 代表数组的索引 ,value 代表数组中的值

②遍历Json对象

var json = {key1:value1, key2:value2, key3:value3}

$.each(json, function(key,value){…})

回调函数中:key 代表json对象中的key, value 代表json对象中的value

③遍历Jquery对象

var doms = $("div");//Jquery对象本身是一个集合,通过索引的方式可以将Jquery对象转换为Dom对象

$.each(doms, function(index,value){..})

回调函数中:index 代表Jquery对象中的索引, value 代表Jquery对象中的dom对象,也可以通过this得到同样的dom对象

对于③还有另外一种写法就是 $("div").each(function(index,value){…})

对于$.each方法可以通过在回调函数中return false退出循环,如果return true 则相当于for循环中的continue

疑问:为什么$().each回调函数中的this不是Jquery对象 而是Dom对象

由于$().each方法的本质是通过调用$.each实现的,通过分析$.each源码可知,我们可以看到callback.apply(object[i++],args)这段代码

对于$().each传进去的object正是Jquery对象,而object[i++]将Jquery对象转换为dom对象,再根据apply方法劫持对象的特性,那么回调函数中的this就被改变成了dom对象

我们经常在Jquery插件中看到这种写法,通过上面的分析,我想就应该懂了

$.fn.test = function(option){

return this.each(function(){//这个this是Jquery对象

alert(this);//而这个this却是Dom对象

})

}

以上这篇深入理解$.each和$(selector).each就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript onmouseout 解决办法
Jul 17 Javascript
jQuery实现带滚动导航效果的全屏滚动相册实例
Jun 19 Javascript
js实现正则匹配中文标点符号的方法
Dec 23 Javascript
谈谈我对JavaScript原型和闭包系列理解(随手笔记9)
Dec 24 Javascript
JQueryEasyUI之DataGrid数据显示
Nov 23 Javascript
js封装tab标签页实例分享
Dec 19 Javascript
vue如何从接口请求数据
Jun 22 Javascript
使用node.js对音视频文件加密的实例代码
Aug 30 Javascript
js实现input密码框显示/隐藏功能
Sep 10 Javascript
layui原生表单验证的实例
Sep 09 Javascript
JQuery绑定事件四种实现方法解析
Dec 02 jQuery
element多个表单校验的实现
May 27 Javascript
js中最容易被忽视的事件问题大总结
May 15 #Javascript
jquery点击改变class并toggle的实现代码
May 15 #Javascript
js停止冒泡和阻止浏览器默认行为的简单方法
May 15 #Javascript
浅析js绑定事件的常用方法
May 15 #Javascript
js添加事件的通用方法推荐
May 15 #Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
May 15 #Javascript
JQuery validate插件Remote用法大全
May 15 #Javascript
You might like
PHP高级OOP技术演示
2009/08/27 PHP
分享一段php获取linux服务器状态的代码
2014/05/27 PHP
PHP设计模式之简单工厂和工厂模式实例分析
2019/03/25 PHP
jQuery提交表单ajax查询实例代码
2012/10/07 Javascript
常规表格多表头查询示例
2014/02/21 Javascript
一个获取第n个元素节点的js函数
2014/09/02 Javascript
对比分析AngularJS中的$http.post与jQuery.post的区别
2015/02/27 Javascript
JavaScript控制按钮可用或不可用的方法
2015/04/03 Javascript
jQuery实现form表单基于ajax无刷新提交方法详解
2015/12/08 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
Vue.js项目中管理每个页面的头部标签的两种方法
2018/06/25 Javascript
nodejs如何在package.json中设置多条启动命令
2020/03/16 NodeJs
python自定义异常实例详解
2017/07/11 Python
Python探索之实现一个简单的HTTP服务器
2017/10/28 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
将HTML5 Canvas的内容保存为图片借助toDataURL实现
2013/05/20 HTML / CSS
详解移动端HTML5页面端去掉input输入框的白色背景和边框(兼容Android和ios)
2016/12/15 HTML / CSS
美国网上订购鲜花:FTD
2016/09/23 全球购物
Sunglasses Shop瑞典:欧洲领先的太阳镜网上商店
2018/04/22 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
销售助理岗位职责
2014/02/21 职场文书
法人代表授权委托书
2014/04/08 职场文书
《金色的脚印》教后反思
2014/04/23 职场文书
心理咨询承诺书
2014/05/20 职场文书
新闻传播专业求职信
2014/07/22 职场文书
2014年文明创建工作总结
2014/11/25 职场文书
大学生求职信怎么写
2015/03/19 职场文书
银行求职信范文怎么写
2015/03/20 职场文书
关于召开会议的通知
2015/04/15 职场文书
行政复议答复书
2015/07/01 职场文书
小学生法制教育心得体会
2016/01/14 职场文书
2016年第二十届“母亲节暨幸福工程救助贫困母亲活动日”活动总结
2016/04/06 职场文书
导游词之镇江-金山寺
2019/10/14 职场文书
Python基础之pandas数据合并
2021/04/27 Python
一起来看看Vue的核心原理剖析
2022/03/24 Vue.js
使用Python通过企业微信应用给企业成员发消息
2022/04/18 Python