深入理解$.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 相关文章推荐
模拟用户操作Input元素,不会触发相应事件
May 11 Javascript
JQuery团队打造的javascript单元测试工具QUnit介绍
Feb 26 Javascript
去掉gridPanel表头全选框的小例子
Jul 18 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
Feb 04 Javascript
jquery获取当前点击对象的value方法
Feb 28 Javascript
怎么引入(调用)一个JS文件
May 26 Javascript
jQuery Ajax使用FormData对象上传文件的方法
Sep 07 Javascript
js实现简单的网页换肤效果
Jan 18 Javascript
详解如何在react中搭建d3力导向图
Jan 12 Javascript
js删除数组中的元素delete和splice的区别详解
Feb 03 Javascript
Vue的轮播图组件实现方法
Mar 03 Javascript
Vue项目环境搭建详细总结
Sep 26 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
Memcache 在PHP中的使用技巧
2010/02/08 PHP
PHP常用数组函数介绍
2014/07/28 PHP
Apache服务器下防止图片盗链的办法
2015/07/06 PHP
编写PHP脚本使WordPress的主题支持Widget侧边栏
2015/12/14 PHP
php使用curl实现ftp文件下载功能
2017/05/16 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
2018/05/24 PHP
php实现数组重复数字统计实例
2018/09/30 PHP
用CSS+JS实现的进度条效果效果
2007/06/05 Javascript
event.srcElement 用法笔记e.target
2009/12/18 Javascript
js实现点击添加一个input节点
2014/12/05 Javascript
JavaScript各类型的关系图解
2015/10/16 Javascript
想学习javascript JS和jQuery哪个重要 先学哪个
2016/12/11 Javascript
Vue 幸运大转盘实现思路详解
2019/05/06 Javascript
使用VueCli3+TypeScript+Vuex一步步构建todoList的方法
2019/07/25 Javascript
浅谈javascript错误处理
2019/08/11 Javascript
[03:00]2018完美盛典_最佳英雄奖
2018/12/17 DOTA
Python itertools模块详解
2015/05/09 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
python 限制函数调用次数的实例讲解
2018/04/21 Python
python保存网页图片到本地的方法
2018/07/24 Python
python实现自动网页截图并裁剪图片
2018/07/30 Python
python实现单链表的方法示例
2019/09/03 Python
浅谈django 模型类使用save()方法的好处与注意事项
2020/03/28 Python
python mysql自增字段AUTO_INCREMENT值的修改方式
2020/05/18 Python
tensorflow使用L2 regularization正则化修正overfitting过拟合方式
2020/05/22 Python
Python调用Redis的示例代码
2020/11/24 Python
十岁生日家长答谢词
2014/01/17 职场文书
乡镇精神文明建设汇报材料
2014/08/15 职场文书
个人授权委托书范本格式
2014/10/12 职场文书
代办出身证明书
2014/10/21 职场文书
党员反对四风思想汇报范文
2014/10/25 职场文书
避暑山庄导游词
2015/02/04 职场文书
小学生节水倡议书
2015/04/29 职场文书
2016大学生社会实践单位评语
2015/12/01 职场文书
婚礼必备主持词范本!
2019/07/23 职场文书
MySQL如何使用使用Xtrabackup进行备份和恢复
2021/06/21 MySQL