深入理解$.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 getElementsByName()的用法说明
Jul 31 Javascript
js textarea自动增高并隐藏滚动条
Dec 16 Javascript
jquery.ui.draggable中文文档(原文翻译)
Nov 15 Javascript
如何屏蔽防止别的网站嵌入框架代码
Aug 24 Javascript
原生的强大DOM选择器querySelector介绍
Dec 21 Javascript
JS设置CSS样式的方式汇总
Jan 21 Javascript
select自定义小三角样式代码(实用总结)
Aug 18 Javascript
解决Angular.js中使用Swiper插件不能滑动的问题
Feb 26 Javascript
jQuery实现文字超过1行、2行或规定的行数时自动加省略号的方法
Mar 28 jQuery
Vue+Webpack完美整合富文本编辑器TinyMce的方法
Nov 30 Javascript
JS前端知识点offset,scroll,client,冒泡,事件对象的应用整理总结
Jun 27 Javascript
js实现二级联动简单实例
Jan 11 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删除页面记录 同时刷新页面 删除条件用GET方式获得
2012/01/10 PHP
dhtmlxTree目录树增加右键菜单以及拖拽排序的实现方法
2013/04/26 PHP
php中Socket创建与监听实现方法
2015/01/05 PHP
php获取当前url地址的方法小结
2017/01/10 PHP
Mac系统下搭建Nginx+php-fpm实例讲解
2020/12/15 PHP
Extjs学习笔记之八 继承和事件基础
2010/01/08 Javascript
js替代copy(示例代码)
2013/11/27 Javascript
jquery+css3打造一款ajax分页插件(自写)
2014/06/18 Javascript
JavaScript中的console.trace()函数介绍
2014/12/29 Javascript
JavaScript计算两个日期时间段内日期的方法
2015/03/16 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
全面接触神奇的Bootstrap导航条实战篇
2016/08/01 Javascript
jquery动态添加文本并获取值的方法
2016/10/12 Javascript
详解vue项目优化之按需加载组件-使用webpack require.ensure
2017/06/13 Javascript
webpack开发跨域问题解决办法
2017/08/03 Javascript
QQ跳转支付宝并自动领红包脚本(最新)
2018/06/22 Javascript
JavaScript Canvas实现验证码
2020/08/02 Javascript
Python导出数据到Excel可读取的CSV文件的方法
2015/05/12 Python
python爬取51job中hr的邮箱
2016/05/14 Python
Python读写及备份oracle数据库操作示例
2018/05/17 Python
python抓取网站的图片并下载到本地的方法
2018/05/22 Python
python 将md5转为16字节的方法
2018/05/29 Python
python 将字符串中的数字相加求和的实现
2019/07/18 Python
Python中内建模块collections如何使用
2020/05/27 Python
详解python实现可视化的MD5、sha256哈希加密小工具
2020/09/14 Python
python 下载文件的多种方法汇总
2020/11/17 Python
英国口碑最好的的维他命胶囊品牌:Myvitamins(有中文站)
2016/12/03 全球购物
英国豪华家具和经典家居饰品购物网站:OKA
2020/06/05 全球购物
SQL SERVER面试资料
2013/03/30 面试题
2014学习十八届四中全会精神思想汇报范文
2014/10/23 职场文书
现实表现证明材料
2015/06/19 职场文书
班主任经验交流心得体会
2015/11/02 职场文书
你真的了解PHP中的引用符号(&)吗
2021/05/12 PHP
SQL 尚未定义空闲 CPU 条件 - OnIdle 作业计划将不起任何作用
2021/06/30 SQL Server
Nginx location 和 proxy_pass路径配置问题小结
2021/09/04 Servers
利用python做数据拟合详情
2021/11/17 Python