原生js实现jq的$.each()方法
来源:互联网 发布:苹果手机恢复软件 编辑:程序博客网 时间:2024/05/16 15:48
jq的$.each()方法:
语法:jQuery.each(object, [callback])
回调函数拥有两个参数:第一个为对象的成员或数组的索引,第二个为对应变量或内容。如果需要退出 each 循环可使回调函数返回 false,其它返回值将被忽略。
示例1 遍历数组:
示例2 遍历对象
原生方法实现如下:
// 通过字面量方式实现的函数eachvar each = function(object, callback){ var type = (function(){ switch (object.constructor){ case Object: return 'Object'; break; case Array: return 'Array'; break; case NodeList: return 'NodeList'; break; default: return 'null'; break; } })(); // 为数组或类数组时, 返回: index, value if(type === 'Array' || type === 'NodeList'){ // 由于存在类数组NodeList, 所以不能直接调用every方法 [].every.call(object, function(v, i){ return callback.call(v, i, v) === false ? false : true; }); } // 为对象格式时,返回:key, value else if(type === 'Object'){ for(var i in object){ if(callback.call(object[i], i, object[i]) === false){ break; } } }}
测试下:
数组类型:
对象类型:
类数组类型:
增加退出循环条件:
var obj= {name:'box', color: 'red', size:'big', number: '100',}each(obj, function(i, v){ if(i === 'color'){ console.log('箱子的颜色是,'+v+''); return true; } if(i === 'size' && v=== 'big'){ console.log('型号,数量符合收货'); return false; } console.log(i + ': ' + v);});
原文链接:http://www.jianshu.com/p/8b9f09fe656b
阅读全文
1 0
- 原生js实现jq的$.each()方法
- jq的each方法
- 原生js实现类似jq的trigger
- 原生js与jq对ajax的实现
- jq 与原生js 方法互相转换
- js实现jq的toggleClass方法
- js/jq替换方法replaceAll的实现
- jQuery方法原生实现---each遍历
- JS原生方法实现jQuery的ready()
- 原生js实现jQuery的ready方法
- 原生js实现双色球的方法
- JS原生方法实现jQuery的ready()
- 原生JS实现的AJAX方法、JSONP
- jQuery的原生js实现---on方法
- 原生JS实现判断碰撞的方法
- 基于原生JS实现仿JQ中的Ajax
- 怎么用js实现jq的removeClass方法
- 怎么用js实现jq的removeClass方法
- 大数据预科班5
- 生成随机数
- 生成函数-背包问题学习笔记
- 搜索指定栏目下的内容
- Django爬过的坑系列 -- 函数命名
- 原生js实现jq的$.each()方法
- [HDU1512]Monkey King
- 理解各种硬件协议(i2c, spi, lcd等);(9月5日标题暂存)
- C语言实现字符串连接和字符串比较
- HTTP发送请求和接收响应的整个流程
- HDU1686 Oulipo
- 纸牌游戏的牌型分析和出牌策略
- dedecms如何制作中英文切换的网站?
- 构建颜色渐变的网页背景(HTML+JS)