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 相关文章推荐
jQuery.Autocomplete实现自动完成功能(详解)
Jul 13 Javascript
基于jquery的下拉框改变动态添加和删除表格实现代码
Sep 12 Javascript
jquery验证表单中的单选与多选实例
Aug 18 Javascript
鼠标左键单击冲突的问题解决方法(防止冒泡)
May 14 Javascript
JavaScript实现网页对象拖放功能的方法
Apr 15 Javascript
JS实现仿百度文库评分功能
Jan 12 Javascript
浅谈手写node可读流之流动模式
Jun 01 Javascript
微信小程序模板template简单用法示例
Dec 04 Javascript
微信小程序indexOf的替换方法(推荐)
Jan 14 Javascript
ajax jquery实现页面某一个div的刷新效果
Mar 04 jQuery
详解CocosCreator消息分发机制
Apr 16 Javascript
VUE解决跨域问题Access to XMLHttpRequest at
May 06 Vue.js
判断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
基于mysql的bbs设计(五)
2006/10/09 PHP
php 数组的创建、调用和更新实现代码
2009/03/09 PHP
php中过滤非法字符的具体实现
2013/10/29 PHP
PHP数组相关函数汇总
2015/03/24 PHP
JavaScript 10件让人费解的事情
2010/02/15 Javascript
兼容IE和FF的图片上传前预览js代码
2013/05/28 Javascript
公共js在页面底部加载的注意事项介绍
2013/07/18 Javascript
jquery中的$(document).ready()使用小结
2014/02/14 Javascript
jquery 实现input输入什么div图层显示什么
2014/06/15 Javascript
js实现图片从左往右渐变切换效果的方法
2015/02/06 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
Vue + Webpack + Vue-loader学习教程之功能介绍篇
2017/03/14 Javascript
JS正则替换去空格的方法
2017/03/24 Javascript
JavaScript中使用webuploader实现上传视频功能(demo)
2017/04/10 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
jQuery niceScroll滚动条错位问题的解决方法
2018/02/03 jQuery
vue 本地服务不能被外部IP访问的完美解决方法
2018/10/29 Javascript
点击按钮弹出模态框的一系列操作代码实例
2019/03/29 Javascript
vue 实现setInterval 创建和销毁实例
2020/07/21 Javascript
python实现寻找最长回文子序列的方法
2018/06/02 Python
对numpy中数组转置的求解以及向量内积计算方法
2018/10/31 Python
python实现求特征选择的信息增益
2018/12/18 Python
python 对类的成员函数开启线程的方法
2019/01/22 Python
Python正则表达式匹配数字和小数的方法
2019/07/03 Python
Python并发请求下限制QPS(每秒查询率)的实现代码
2020/06/05 Python
Lulu Guinness露露·吉尼斯官网:红唇包
2019/02/03 全球购物
美国气象仪器、花园装饰和墙壁艺术商店:Wind & Weather
2019/05/29 全球购物
介绍下WebSphere的安全性
2013/01/31 面试题
实习报告评语
2014/04/26 职场文书
社区党建工作汇报材料
2014/08/14 职场文书
三严三实学习心得体会
2014/10/13 职场文书
手术室护士个人总结
2015/02/13 职场文书
2015年高三毕业班班主任工作总结
2015/10/22 职场文书
慰问信(范文3篇)
2019/10/23 职场文书
python3中apply函数和lambda函数的使用详解
2022/02/28 Python
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android