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 相关文章推荐
Mootools 1.2教程 滚动条(Slider)
Sep 15 Javascript
一个背景云变换js特效 鼠标移动背景云变化
Dec 28 Javascript
JavaScript对象学习经验整理
Oct 12 Javascript
深入理解javascript中return的作用
Dec 30 Javascript
Javascript 赋值机制详解
Nov 23 Javascript
原生JavaScript制作计算器
Oct 16 Javascript
js与jquery分别实现tab标签页功能的方法
Nov 18 Javascript
JavaScript简单验证表单空值及邮箱格式的方法
Jan 20 Javascript
利用vue和element-ui设置表格内容分页的实例
Mar 02 Javascript
js作用域和作用域链及预解析
Apr 11 Javascript
Vue Element校验validate的实例
Sep 21 Javascript
jQuery实现放大镜案例
Oct 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实现的博客欢迎提示功能(很特别哦)
2014/06/05 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
ThinkPHP 3.2 数据分页代码分享
2014/10/14 PHP
PHP截取IE浏览器并缩小原图的方法
2016/03/04 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
gearman中任务的优先级和返回状态实例分析
2020/02/27 PHP
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JS+CSS实现的拖动分页效果实例
2015/05/11 Javascript
JavaScript setTimeout使用闭包功能实现定时打印数值
2015/12/18 Javascript
浅析jQuery中使用$所引发的问题
2016/05/29 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
Node.js利用Net模块实现多人命令行聊天室的方法
2016/12/23 Javascript
微信小程序 自定义对话框实例详解
2017/01/20 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
解决await在forEach中不起作用的问题
2021/02/25 Javascript
Python实现生成随机数据插入mysql数据库的方法
2017/12/25 Python
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
详解python项目实战:模拟登陆CSDN
2019/04/04 Python
纯css3(无图片/js)制作的几个社交媒体网站的图标
2013/03/21 HTML / CSS
英国殿堂级有机护肤品牌:Rodial
2017/04/17 全球购物
波兰珠宝品牌:YES
2019/08/09 全球购物
C#笔试题和英文面试题
2013/02/07 面试题
教育学习自我评价
2014/02/03 职场文书
法律系毕业生自荐信范文
2014/03/27 职场文书
给小学生的新年寄语
2014/04/04 职场文书
给校长的建议书200字
2014/05/16 职场文书
超市七夕促销活动方案
2014/08/28 职场文书
商务英语求职信范文
2015/03/19 职场文书
小升初自荐信怎么写
2015/03/26 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
被告代理词范文
2015/05/25 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
2019暑假学生安全口号
2019/06/27 职场文书
海弦WR-800F
2022/04/05 无线电
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2022/06/21 Java/Android
mysql函数之截取字符串的实现
2022/08/14 MySQL