jQuery中$.each()函数的用法引申实例


Posted in Javascript onMay 12, 2016

语法:

$.each( collection, callback(indexInArray, valueOfElement) )

值得一提的是,forEach 可以很方便的遍历数组和 NodeList ,jQuery 中的 jQuery 对象本身已经部署了这类遍历方法,而在原生 JavaScript 中则可以使用 forEach 方法,但是 IE 并不支持,因此我们可以手动把 forEach 方法部署到数组和 NodeList 中:

if ( !Array.prototype.forEach ){
  Array.prototype.forEach = function(fn, scope) {
    for( var i = 0, len = this.length; i < len; ++i) {
      fn.call(scope, this[i], i, this);
    }
  }
}
 
// 部署完毕后 IE 也可以使用 forEach 了
document.getElementsByTagName('p').forEach(function(e){
 
  e.className = 'inner';
});

而jQuery中的$.each()函数则更加强大。$.each()函数和$(selector).each()不一样。$.each()函数可以用来遍历任何一个集合,不管是一个JavaScript对象或者是一个数组,如果是一个数组的话,回调函数每次传递一个数组的下标和这个下标所对应的数组的值(这个值也可以在函数体中通过this关键字获取,但是JavaScript通常会把this这个值当作一个对象即使他只是一个简单的字符串或者是一个数字),这个函数返回所遍历的对象,也就是这个函数的第一个参数,注意这里还是原来的那个数组,这是和map的区别。
其中collection代表目标数组,callback代表回调函数(自己定义),回调函数的参数第一个是数组的下标,第二个是数组的元素。当然我们也可以给回调函数只设定一个参数,这个参数一定是下标,而没有参数也是可以的。

例1:传入数组

<!DOCTYPE html> 
<html> 
<head> 
<script src=”http://code.jquery.com/jquery-latest.js”></script> 
</head> 
<body> 
<script> 

$.each([52, 97], function(index, value) { 
alert(index + ‘: ‘ + value); 
}); 

</script> 
</body> 
</html>

输出:

0: 52 
1: 97

例2:如果一个映射作为集合使用,回调函数每次传入一个键-值对

<!DOCTYPE html> 
<html> 
<head> 
<script src=”http://code.jquery.com/jquery-latest.js”></script> 
</head> 
<body> 
<script> 

var map = { 
‘flammable': ‘inflammable', 
‘duh': ‘no duh' 
}; 
$.each(map, function(key, value) { 
alert(key + ‘: ‘ + value); 
}); 

</script> 
</body> 
</html>

输出:

flammable: inflammable 
duh: no duh

例3:回调函数中 return false时可以退出$.each(), 如果返回一个非false 即会像在for循环中使用continue 一样, 会立即进入下一个遍历

<!DOCTYPE html> 

<html> 

<head> 

 <style> 

 div { color:blue; } 

 div#five { color:red; } 

 </style> 

 <script src=”http://code.jquery.com/jquery-latest.js”></script> 

</head> 

<body> 

 <div id=”one”></div> 

 <div id=”two”></div> 

 <div id=”three”></div> 

 <div id=”four”></div> 

 <div id=”five”></div> 

<script> 

  var arr = [ "one", "two", "three", "four", "five" ];//数组 

  var obj = { one:1, two:2, three:3, four:4, five:5 }; // 对象 

  jQuery.each(arr, function() { // this 指定值 

   $(“#” + this).text(“Mine is ” + this + “.”); // this指向为数组的值, 如one, two 

    return (this != “three”); // 如果this = three 则退出遍历 

  }); 

  jQuery.each(obj, function(i, val) { // i 指向键, val指定值 

   $(“#” + i).append(document.createTextNode(” ? ” + val)); 

  }); 

</script> 

</body> 

</html>

输出 :

Mine is one. ? 1 
Mine is two. ? 2 
Mine is three. ? 3 
- 4 
- 5

Javascript 相关文章推荐
JS实现打开本地文件或文件夹
Mar 09 Javascript
为jQuery增加join方法的实现代码
Nov 28 Javascript
侧栏跟随滚动的简单实现代码
Mar 18 Javascript
JS在textarea光标处插入文本的小例子
Mar 22 Javascript
利用jQuary实现文字浮动提示效果示例代码
Dec 26 Javascript
jQuery.extend()、jQuery.fn.extend()扩展方法示例详解
May 08 Javascript
js实现iGoogleDivDrag模块拖动层拖动特效的方法
Mar 04 Javascript
浅析创建javascript对象的方法
May 13 Javascript
Ionic如何创建APP项目
Jun 03 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
Jun 25 Javascript
Vue.js实现模拟微信朋友圈开发demo
Apr 20 Javascript
jQuery实现穿梭框效果
Jan 19 jQuery
判断JS对象是否拥有某属性的方法推荐
May 12 #Javascript
JavaScript的模块化开发框架Sea.js上手指南
May 12 #Javascript
使用jQuery.form.js/springmvc框架实现文件上传功能
May 12 #Javascript
jQuery CSS3自定义美化Checkbox实现代码
May 12 #Javascript
深入浅析JavaScript中with语句的理解
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【九】实现Web页面内容的打印预览和保存操作
May 12 #Javascript
基于BootStrap Metronic开发框架经验小结【八】框架功能总体界面介绍
May 12 #Javascript
You might like
菜鸟学PHP之Smarty入门
2007/01/04 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php基于mcrypt的加密解密实例
2014/10/27 PHP
CI框架验证码CAPTCHA辅助函数用法实例
2014/11/05 PHP
微信公众平台消息接口校验与消息接口响应实例
2014/12/23 PHP
php中namespace use用法实例分析
2016/01/22 PHP
在php的yii2框架中整合hbase库的方法
2018/09/20 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
Javascript简单实现可拖动的div
2013/10/22 Javascript
javascript向后台传送相同属性的参数即数组参数
2014/02/17 Javascript
iframe中子父类窗口调用JS的方法及注意事项
2015/08/25 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jquery的 filter()方法使用教程
2018/03/22 jQuery
vue构建动态表单的方法示例
2018/09/22 Javascript
关于自定义Egg.js的请求级别日志详解
2018/12/12 Javascript
Node.js 的 GC 机制详解
2019/06/03 Javascript
VueJS实现用户管理系统
2020/05/29 Javascript
Python检测一个对象是否为字符串类的方法
2015/05/21 Python
Django URL传递参数的方法总结
2016/08/28 Python
Python 数据结构之队列的实现
2017/01/22 Python
Python如何抓取天猫商品详细信息及交易记录
2018/02/23 Python
Python 装饰器实现DRY(不重复代码)原则
2018/03/05 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
Python基础之字典常见操作经典实例详解
2020/02/26 Python
python入门:argparse浅析 nargs='+'作用
2020/07/12 Python
完美解决Pycharm中matplotlib画图中文乱码问题
2021/01/11 Python
纯CSS3大转盘抽奖示例代码(响应式、可配置)
2017/01/13 HTML / CSS
请解释virtual关键字的含义
2015/06/17 面试题
装潢设计实习自我鉴定
2013/09/19 职场文书
大班上学期幼儿评语
2014/04/30 职场文书
班级光棍节联谊会策划书
2014/10/10 职场文书
胡桃夹子观后感
2015/06/11 职场文书
收入证明范本
2015/06/12 职场文书
创业计划书之牛肉汤快餐店
2019/10/08 职场文书
vue选项卡切换的实现案例
2022/04/11 Vue.js