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 相关文章推荐
css样式标签和js语法属性区别
Nov 06 Javascript
AngularJS 使用$sce控制代码安全检查
Jan 05 Javascript
Ionic实现仿通讯录点击滑动及$ionicscrolldelegate使用分析
Jan 18 Javascript
Extjs 点击复选框在表格中增加相关信息行
Jul 12 Javascript
a标签跳转到指定div,jquery添加和移除class属性的实现方法
Oct 10 Javascript
vue.js通过自定义指令实现数据拉取更新的实现方法
Oct 18 Javascript
Angular.js跨controller实现参数传递的两种方法
Feb 20 Javascript
AugularJS从入门到实践(必看篇)
Jul 10 Javascript
jQuery实现条件搜索查询、实时取值及升降序排序的方法分析
May 04 jQuery
详解一次Vue低版本安卓白屏问题的解决过程
May 30 Javascript
前端路由&amp;webpack基础配置详解
Jun 10 Javascript
Nuxt的路由配置和参数传递方式
Nov 06 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
使用 eAccelerator加速PHP代码的目的
2007/03/16 PHP
php生成SessionID和图片校验码的思路和实现代码
2009/03/10 PHP
php学习笔记(三)操作符与控制结构
2011/08/06 PHP
深入PHP FTP类的详解
2013/06/13 PHP
PHP生成图片验证码功能示例
2017/01/12 PHP
关于Yii2框架跑脚本时内存泄漏问题的分析与解决
2019/12/01 PHP
IE6图片加载的一个BUG解决方法
2010/07/13 Javascript
Node.js与MySQL交互操作及其注意事项
2016/10/05 Javascript
jQuery Easyui 下拉树组件combotree
2016/12/16 Javascript
jQuery validate 验证radio实例
2017/03/01 Javascript
js实现放大镜特效
2017/05/18 Javascript
面包屑导航详解
2017/12/07 Javascript
js基于canvas实现时钟组件
2021/02/07 Javascript
[50:54]完美世界DOTA2联赛 GXR vs IO 第三场 11.07
2020/11/10 DOTA
在RedHat系Linux上部署Python的Celery框架的教程
2015/04/07 Python
基于Python闭包及其作用域详解
2017/08/28 Python
python正则表达式面试题解答
2020/04/28 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
2018/02/08 Python
ubuntu系统下使用pm2设置nodejs开机自启动的方法
2018/05/12 NodeJs
python使用PIL模块获取图片像素点的方法
2019/01/08 Python
Python Request爬取seo.chinaz.com百度权重网站的查询结果过程解析
2019/08/13 Python
python实现井字棋小游戏
2020/03/04 Python
keras训练浅层卷积网络并保存和加载模型实例
2020/07/02 Python
Django+Uwsgi+Nginx如何实现生产环境部署
2020/07/31 Python
python爬虫爬取网页数据并解析数据
2020/09/18 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的代码
2020/11/30 HTML / CSS
澳大利高级泳装品牌:Bondi Born
2018/05/23 全球购物
Baby Tulai澳大利亚:美国婴儿背带品牌
2018/10/15 全球购物
Cynthia Rowley官网:全球领先的生活方式品牌
2020/10/27 全球购物
大唐电信科技股份有限公司java工程师面试经历
2016/12/09 面试题
酒店服务与管理毕业生求职信
2013/11/02 职场文书
工程部主管岗位职责
2013/11/17 职场文书
劲霸男装广告词
2014/03/21 职场文书
技术岗位竞聘演讲稿
2014/05/16 职场文书
战友聚会致辞
2015/07/28 职场文书
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
2021/06/23 Python