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 相关文章推荐
srcElement表格样式
Sep 03 Javascript
JQuery的自定义事件代码,触发,绑定简单实例
Aug 01 Javascript
extJS中常用的4种Ajax异步提交方式
Mar 07 Javascript
瀑布流布局代码一例
Apr 11 Javascript
jquery delay()介绍及使用指南
Sep 02 Javascript
javascript如何创建对象
Aug 29 Javascript
实例解析jQuery中如何取消后续执行内容
Dec 01 Javascript
写jQuery插件时的注意点
Feb 20 Javascript
js实现图片放大展示效果
Aug 30 Javascript
vue实现城市列表选择功能
Jul 16 Javascript
实例介绍JavaScript中多种组合继承
Jan 20 Javascript
Fetch超时设置与终止请求详解
May 18 Javascript
判断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获得url参数中具有&amp;的值的方法
2014/03/05 PHP
PHP连接MSSQL方法汇总
2016/02/05 PHP
PHP面向对象程序设计组合模式与装饰模式详解
2016/12/02 PHP
php设计模式之中介者模式分析【星际争霸游戏案例】
2020/03/23 PHP
jquery数组之存放checkbox全选值示例代码
2013/12/20 Javascript
node.js中的url.resolve方法使用说明
2014/12/10 Javascript
prototype框架中美元符号$用法分析
2016/01/22 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
AngularJS中的包含详细介绍及实现示例
2016/07/28 Javascript
原生node.js案例--前后台交互
2017/02/20 Javascript
深入解析js轮播插件核心代码的实现过程
2017/04/14 Javascript
vue项目中api接口管理总结
2018/04/20 Javascript
Angular6中使用Swiper的方法示例
2018/07/09 Javascript
详解vue文件中使用echarts.js的两种方式
2018/10/18 Javascript
JS闭包原理与应用经典示例
2018/12/20 Javascript
vue项目创建并引入饿了么elementUI组件的步骤
2019/04/11 Javascript
vue之组件内监控$store中定义变量的变化详解
2019/11/08 Javascript
python抓取网页内容示例分享
2014/02/24 Python
Python中 传递值 和 传递引用 的区别解析
2018/02/22 Python
python类的实例化问题解决
2019/08/31 Python
Python爬虫 urllib2的使用方法详解
2019/09/23 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
TensorFlow2.X使用图片制作简单的数据集训练模型
2020/04/08 Python
Python连接HDFS实现文件上传下载及Pandas转换文本文件到CSV操作
2020/06/06 Python
pycharm中选中一个单词替换所有重复单词的实现方法
2020/11/17 Python
Coggles美国/加拿大:高级国际时装零售商
2018/10/23 全球购物
荷兰睡眠专家:Beter Bed
2020/11/23 全球购物
璀璨的珍珠、密钉和个性化珠宝:Lily & Roo
2021/01/21 全球购物
机电职业生涯规划书范文
2014/03/08 职场文书
核心价值观演讲稿
2014/05/13 职场文书
安全生产年活动总结
2014/08/29 职场文书
论文评审意见
2015/06/05 职场文书
病假条格式范文
2015/08/17 职场文书
导游词之重庆渣滓洞
2020/01/08 职场文书
Python趣味挑战之用pygame实现简单的金币旋转效果
2021/05/31 Python
再次探讨go实现无限 buffer 的 channel方法
2021/06/13 Golang