JQuery源码浅析之工具-each
来源:互联网 发布:假身份证淘宝怎么搜 编辑:程序博客网 时间:2024/06/07 05:19
1.介绍
each是jQuery中一个重要的工具方法.用来遍历数组或者对象,并且执行回调.
2.使用方法
each( obj, callback, args )
obj: 数组或者普通对象(可以认为是一个集合)
callback:回调函数, 遍历obj中的每一个元素就会把该元素作为参数(作为回调函数的this)调用回调函数,callback可以这样写,
function callback(objItem) {
console.log(objItem);
}
args: 调用回调callback的附加参数,可以这样写回调
function callback(objItem, args) {
console.log(objItem + ' ' + args );
}
demo:
//each接受2个参数, 数组[1,2,3],回调函数$.each([1,2,3], function(key, value){ console.log("[" + key + "]=" + value); return false;});//输出:[0]=1[1]=2[2]=3[1,2,3]//可以看到回调函数具有两个参数,key是数组的索引,value是对应的元素 //each接受3个参数, 数组[1,2,3],回调函数,一个额外的参数数组args=[4,5]$.each([1,2,3], function(arg1, arg2){ console.log(this + "," + arg1 + "," + arg2);}, [4, 5]);//输出:1,4,52,4,53,4,5[1,2,3]//可以看到回调函数的两个参数就是each的第三个参数args,在函数里边的this就是遍历元素自己
3.jQuery源码
jQuery.extend({//...省略其他// args is for internal usage onlyeach: function( obj, callback, args ) {var value,i = 0,length = obj.length,//判断obj是不是数组,数组和普通对象的遍历不一样,在js中数组使用下标遍历array[index], //普通对象使用obj[attribute] -> value,有点类似Java 的Map的意思. //在最新的JS版本中将列入新的集合规范,其中就包括Map,当前,js不存在Map集合对象isArray = isArraylike( obj );if ( args ) {if ( isArray ) {for ( ; i < length; i++ ) {value = callback.apply( obj[ i ], args );if ( value === false ) {break;}}} else {for ( i in obj ) {value = callback.apply( obj[ i ], args );if ( value === false ) {break;}}}// A special, fast, case for the most common use of each} else {if ( isArray ) {//含简单,数组按照下标遍历数组元素for ( ; i < length; i++ ) {value = callback.call( obj[ i ], i, obj[ i ] );if ( value === false ) {break;}}} else {//如果是对象,则遍历对象中的属性,例如json格式的数据解析,[{id:001, name:zhangsan}, {id:002, name:lisi}]for ( i in obj ) {value = callback.call( obj[ i ], i, obj[ i ] ); //在回调函数中每一次调用返回false,会结束后面的元素遍历if ( value === false ) {break;}}}}return obj;},//...省略其他});
0 0
- JQuery源码浅析之工具-each
- jQuery源码学习 之 each迭代器
- jQuery源码分析之jQuery.fn.each与jQuery.each用法
- 【jQuery源码浅析】(四)--jQuery工具--$.fn
- jquery之$.each()
- jQuery遍历之each()
- jQ源码之each
- jQuery源码分析-each函数
- jquery源码解析----each迭代器
- jQuery源码分析-----迭代器each
- jquery源码--each函数归纳
- jQuery源码分析3: jQuery.each
- JQuery源码浅析: Callbacks
- jQuery源码浅析
- JQuery学习之each方法
- jQuery 学习笔记之$.each()
- jQuery之each的使用
- 【深入浅出jQuery】源码浅析--奇技淫巧
- js 正则表达式一看就懂
- 用户体验设计师、UI 设计师和交互设计师有什么区别?
- POJ 2263 Heavy Cargo (SPFA+Dijkstra,最短路变形)
- Linux crontab定时执行任务 命令格式与详细例子
- Error (171173): Node from partition Top cannot preserve previous 管脚分配错误
- JQuery源码浅析之工具-each
- C语言-10
- SGU 102(Coprimes)
- Selenium的封装与重用
- 大图处理
- 杭电ACM1431——素数回文~~打表法
- opencv日常学习之给ROI,以及给图片加水印
- HBase 简介以及个人理解(原理,基本概念,基本架构)
- iOS中对象属性的归档和解档(runtime+KVC)快捷解决方案