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 相关文章推荐
GWT中复制到剪贴板 js+flash实现复制 兼容性比较好
Mar 07 Javascript
ztree获取当前选中节点子节点id集合的方法
Feb 12 Javascript
JavaScript里实用的原生API汇总
May 14 Javascript
javascript实现youku的视频代码自适应宽度
May 25 Javascript
分享两款带遮罩的jQuery弹出框
Dec 30 Javascript
浅谈js基本数据类型和typeof
Aug 09 Javascript
js数组去重的hash方法
Dec 22 Javascript
canvas实现流星雨的背景效果
Jan 13 Javascript
vue.js实现含搜索的多种复选框(附源码)
Mar 23 Javascript
Node.js 使用递归实现遍历文件夹中所有文件
Sep 18 Javascript
使用express获取微信小程序二维码小记
May 21 Javascript
element-ui 远程搜索组件el-select在项目中组件化的实现代码
Dec 04 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
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
thinkPHP分页功能实例详解
2017/05/05 PHP
IE autocomplete internet explorer's autocomplete
2007/06/30 Javascript
javascript数组使用调用方法汇总
2007/12/08 Javascript
extjs4 treepanel动态改变行高度示例
2013/12/17 Javascript
javascript父子页面通讯实例详解
2015/07/17 Javascript
基于jquery实现在线选座订座之影院篇
2015/08/24 Javascript
七个不允许错过的jQuery小技巧
2015/12/21 Javascript
基于JavaScript实现移除(删除)数组中指定元素
2016/01/04 Javascript
JavaScript中数组slice和splice的对比小结
2016/09/22 Javascript
BootstrapValidator超详细教程(推荐)
2016/12/07 Javascript
原生JS实现自定义下拉单选选择框功能
2018/10/12 Javascript
Angular 实现输入框中显示文章标签的实例代码
2018/11/07 Javascript
vue-cli或vue项目利用HBuilder打包成移动端app操作
2020/07/29 Javascript
jQuery实现增删改查
2020/12/22 jQuery
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
[03:44]2015国际邀请赛选手档案—Cloud9.NoTail
2015/07/28 DOTA
Python使用面向对象方式创建线程实现12306售票系统
2015/12/24 Python
Python编程中对super函数的正确理解和用法解析
2016/07/02 Python
关于Python元祖,列表,字典,集合的比较
2017/01/06 Python
Python函数式编程指南:对生成器全面讲解
2019/11/19 Python
使用opencv将视频帧转成图片输出
2019/12/10 Python
flask 框架操作MySQL数据库简单示例
2020/02/02 Python
django 前端页面如何实现显示前N条数据
2020/03/16 Python
解决python DataFrame 打印结果不换行问题
2020/04/09 Python
CSS代码检查工具stylelint的使用方法详解
2021/03/27 HTML / CSS
工作室成员个人发展规划范文
2014/01/24 职场文书
电脑专业个人求职信范文
2014/02/04 职场文书
总经理任命书范本
2014/06/05 职场文书
计算机网络专业自荐书
2014/06/09 职场文书
党的群众路线教育实践活动对照检查材料
2014/09/22 职场文书
2014年科普工作总结
2014/12/06 职场文书
学校教师师德师风承诺书
2015/04/28 职场文书
深度学习小工程练习之垃圾分类详解
2021/04/14 Python
mysql配置SSL证书登录的实现
2021/09/04 MySQL
Spring-cloud Config Server的3种配置方式
2021/09/25 Java/Android