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 相关文章推荐
Yii-自定义删除确认弹框(zyd)jquery实现代码
Mar 04 Javascript
js实现数组去重、判断数组以及对象中的内容是否相同
Nov 29 Javascript
JavaScript中输出标签的方法
Aug 27 Javascript
js实现编辑div节点名称的方法
Dec 17 Javascript
JavaScript模块化开发之SeaJS
Dec 13 Javascript
一波JavaScript日期判断脚本分享
Mar 06 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
Javascript之String对象详解
Jun 08 Javascript
jQuery实现鼠标经过像翻页和描点链接效果
Aug 08 Javascript
JavaScript三种绑定事件方式及相互之间的区别分析
Jan 10 Javascript
JS手机端touch事件计算滑动距离的方法示例
Oct 26 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 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多个字符串替换成同一个的解决方法
2013/06/18 PHP
thinkphp,onethink和thinkox中验证码不显示的解决方法分析
2016/06/06 PHP
PHP生成短网址方法汇总
2016/07/12 PHP
PHP利用缓存处理用户注册时的邮箱验证,成功后用户数据存入数据库操作示例
2019/12/31 PHP
jQuery 全选效果实现代码
2009/03/23 Javascript
jQuery Ajax使用 全解析
2010/12/15 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
jQuery简单tab切换效果实现方法
2015/04/08 Javascript
js实现新年倒计时效果
2015/12/10 Javascript
jQuery ajax应用总结
2016/06/02 Javascript
Vue.js组件tree实现无限级树形菜单
2016/12/02 Javascript
node实现简单的反向代理服务器
2017/07/26 Javascript
H5实现仿flash效果的实现代码
2017/09/29 Javascript
详解Vue SPA项目优化小记
2018/07/03 Javascript
vue实现移动端轻量日期组件不依赖第三方库的方法
2019/04/28 Javascript
使用RxJS更优雅地进行定时请求详析
2019/06/02 Javascript
[02:15]2014DOTA2国际邀请赛 赛后退役选手回顾
2014/08/01 DOTA
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
python3实现TCP协议的简单服务器和客户端案例(分享)
2017/06/14 Python
python引入不同文件夹下的自定义模块方法
2018/10/27 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
python求最大值,不使用内置函数的实现方法
2019/07/09 Python
对Pytorch神经网络初始化kaiming分布详解
2019/08/18 Python
使用CSS3制作响应式导航菜单的方法
2015/07/12 HTML / CSS
基于html5 DeviceOrientation 实现微信摇一摇功能
2015/09/25 HTML / CSS
美国战术品牌:5.11 Tactical
2019/05/01 全球购物
毕业生精彩的自我评价分享
2013/10/06 职场文书
毕业自荐书
2013/12/09 职场文书
四个太阳教学反思
2014/02/01 职场文书
赔偿协议书范本
2014/09/12 职场文书
上班时间打瞌睡检讨书
2014/09/26 职场文书
环卫个人总结
2015/03/03 职场文书
运动会100米加油稿
2015/07/21 职场文书
三好学生主要事迹材料
2015/11/03 职场文书
小学数学教学反思范文
2016/02/16 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python