jQuery函数map()和each()介绍及异同点分析


Posted in Javascript onNovember 08, 2014

方法语法:map()

map(callback)
为包装集中的每一个元素调用回调函数,并将返回值收集到jQuery对象的实例中。
参数
callback (函数)回调函数,为包装集中的每个元素调用该函数。
比如,下面的代码将页面上所有div元素的id值收集到一个javascript数组中:

var iDs = $("div").map(function(){

    return (this.id==undefined) ? null :this.id;

}).get();

再看如下的表单中包含的一组 checkbox 框:

<form method="post" action="">

<fieldset>

<div>

<label for="two">2</label>

<input type="checkbox" value="2" id="two" name="number[]">

</div>

<div>

<label for="four">4</label>

<input type="checkbox" value="4" id="four" name="number[]">

</div>

<div>

<label for="six">6</label>

<input type="checkbox" value="6" id="six" name="number[]">

</div>

<div>

<label for="eight">8</label>

<input type="text" value="8" id="eight" name="number[]">

</div>

</fieldset>

</form>

我们可以得到一个用逗号分隔的复选框 ID:

$(':checkbox').map(function() {

return this.id;

}).get().join();

此调用的结果是字符串, "two,four,six".

在回调函数中,this指向每次迭代中的当前DOM元素。

方法语法:each()

each(iterator)
遍历匹配集里所有的元素,为每一个元素调用传入的迭代函数
iterator (函数)回调函数,为匹配集中的每个元素调用
each()方法也可以用来遍历javascript数组对象甚至单个对象,举个栗子:

$([a,b,c,d]).each(function(){

    alert(this);

})

这个语句会为传入$()中数组的每个元素调用迭代函数,函数中的this指向单独的数组项。

每次回调函数执行时,会传递当前循环次数作为参数(从0开始计数)。更重要的是,回调函数是在当前DOM元素为上下文的语境中触发的。因此关键字 this 总是指向这个元素。

假设页面上有这样一个简单的无序列表。

<ul>

<li>foo</li>

<li>bar</li>

</ul>

你可以选中并迭代这些列表:

$( "li" ).each(function( index ) {

console.log( index + ": "" + $(this).text() );

});

列表中每一项会显示在下面的消息中:

0: foo
1: bar
两者的区别

map()方法主要用来遍历操作数组和对象,each()主要用于遍历jquery对象。

each()返回的是原来的数组,并不会新创建一个数组。
map()方法会返回一个新的数组。如果在没有必要的情况下使用map,则有可能造成内存浪费。

Javascript 相关文章推荐
JavaScript经典效果集锦
Jul 06 Javascript
javascript通过navigator.userAgent识别各种浏览器
Oct 25 Javascript
js中定义一个变量并判断其是否为空的方法
May 13 Javascript
Lua表达式和控制结构学习笔记
Dec 15 Javascript
XML文件转化成NSData对象的方法
Aug 12 Javascript
bootstrapValidator表单验证插件学习
Dec 30 Javascript
简单实现js拖拽效果
Jul 25 Javascript
AngularJS点击添加样式、点击变色设置的实例代码
Jul 27 Javascript
Windows安装Node.js报错:2503、2502的解决方法
Oct 25 Javascript
AngularJS 应用模块化的使用
Apr 04 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
Apr 29 Javascript
JavaScript监听一个DOM元素大小变化
Apr 26 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 #Javascript
js 操作符汇总
Nov 08 #Javascript
jquery的总体架构分析及实现示例详解
Nov 08 #Javascript
jquery常用方法及使用示例汇总
Nov 08 #Javascript
JQuery遍历json数组的3种方法
Nov 08 #Javascript
JQuery中使用.each()遍历元素学习笔记
Nov 08 #Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 #Javascript
You might like
php中的实现trim函数代码
2007/03/19 PHP
php中inlcude()性能对比详解
2012/09/16 PHP
php验证是否是md5编码的简单代码
2014/04/01 PHP
Codeigniter购物车类不能添加中文的解决方法
2014/11/29 PHP
实现PHP+Mysql无限分类的方法汇总
2015/03/02 PHP
Laravel的throttle中间件失效问题解决方法
2016/10/09 PHP
在IIS下安装PHP扩展的方法(超简单)
2017/04/10 PHP
hover的用法及live的用法介绍(鼠标悬停效果)
2013/03/29 Javascript
javascript实现分栏显示小技巧附图
2014/10/13 Javascript
JavaScript学习笔记之内置对象
2015/01/22 Javascript
jQuery实现Email邮箱地址自动补全功能代码
2015/11/03 Javascript
jQuery Easyui Tabs扩展根据自定义属性打开页签
2016/08/15 Javascript
jQuery实现的放大镜效果示例
2016/09/13 Javascript
浅谈Node.js ORM框架Sequlize之表间关系
2017/07/24 Javascript
微信小程序使用Promise简化回调
2018/02/06 Javascript
微信小程序防止多次点击跳转和防止表单组件输入内容多次验证功能(函数防抖)
2019/09/19 Javascript
bootstrap+spring boot实现面包屑导航功能(前端代码)
2019/10/09 Javascript
基于Vue实现微前端的示例代码
2020/04/24 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
[02:56]DOTA2矮人直升机 英雄基础教程
2013/11/26 DOTA
Python正则表达式实现截取成对括号的方法
2017/01/06 Python
局域网内python socket实现windows与linux间的消息传送
2019/04/19 Python
python查看文件大小和文件夹内容的方法
2019/07/08 Python
python 类之间的参数传递方式
2019/12/20 Python
python 实现从高分辨图像上抠取图像块
2020/01/02 Python
Python 日期时间datetime 加一天,减一天,加减一小时一分钟,加减一年
2020/04/16 Python
Django Admin后台模型列表页面如何添加自定义操作按钮
2020/11/11 Python
python基于opencv实现人脸识别
2021/01/04 Python
python正则表达式re.match()匹配多个字符方法的实现
2021/01/27 Python
《陋室铭》教学反思
2014/02/26 职场文书
党的群众路线教育实践活动心得体会900字
2014/03/07 职场文书
淘宝客服专员岗位职责
2014/04/11 职场文书
医院科室评语
2015/01/04 职场文书
2015教师年度思想工作总结
2015/04/30 职场文书
投诉书范文
2015/07/02 职场文书
党员心得体会范文2016
2016/01/23 职场文书