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 相关文章推荐
让网页根据不同IE版本显示不同的内容
Feb 08 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
Sep 28 Javascript
HTML颜色选择器实现代码
Nov 23 Javascript
js的一些常用方法小结
Jun 29 Javascript
js三种排序算法分享
Aug 16 Javascript
js动态创建、删除表格示例代码
Aug 07 Javascript
javascript Event对象详解及使用示例
Nov 22 Javascript
JavaScript转换二进制编码为ASCII码的方法
Apr 16 Javascript
JavaScript文档碎片操作实例分析
Dec 12 Javascript
.net MVC+Bootstrap下使用localResizeIMG上传图片
Apr 21 Javascript
Vue Echarts实现可视化世界地图代码实例
May 07 Javascript
node-red File读取好保存实例讲解
Sep 11 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
德生S2000收音机更换“钕铁硼”全频扬声器
2021/03/02 无线电
PHP session会话的安全性分析
2011/09/08 PHP
Linux系统下使用XHProf和XHGui分析PHP运行性能
2015/12/08 PHP
PHP多维数组遍历方法(2种实现方法)
2015/12/10 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP常量define和const的区别详解
2019/05/18 PHP
安装docker和docker-compose实例详解
2019/07/30 PHP
浅谈PHP5.6 与 PHP7.0 区别
2019/10/09 PHP
JSQL 批量图片切换的实现代码
2010/05/05 Javascript
深入理解JavaScript系列(6):S.O.L.I.D五大原则之单一职责SRP
2012/01/15 Javascript
12款经典的白富美型—jquery图片轮播插件—前端开发必备
2013/01/08 Javascript
js 实现菜单左右滚动显示示例介绍
2013/11/21 Javascript
jQuery实现级联菜单效果(仿淘宝首页菜单动画)
2014/04/10 Javascript
根据配置文件加载js依赖模块
2014/12/29 Javascript
JavaScript中数据结构与算法(五):经典KMP算法
2015/06/19 Javascript
Javascript DOM事件操作小结(监听鼠标点击、释放,悬停、离开等)
2017/01/20 Javascript
Javascript中将变量转换为字符串的三种方法
2017/09/19 Javascript
小程序清理本地缓存的方法
2018/08/17 Javascript
javascript实现左右缓动动画函数
2020/11/25 Javascript
[01:30:55]VG vs Mineski Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
轻松掌握python设计模式之策略模式
2016/11/18 Python
用Python将IP地址在整型和字符串之间轻松转换
2017/03/22 Python
Python使用pymysql小技巧
2017/06/04 Python
Python编程实现蚁群算法详解
2017/11/13 Python
Python中使用支持向量机(SVM)算法
2017/12/26 Python
Python unittest模块用法实例分析
2018/05/25 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
Python编译为二进制so可执行文件实例
2019/12/23 Python
html5使用canvas实现图片下载功能的示例代码
2017/08/26 HTML / CSS
C#面试常见问题
2013/02/25 面试题
好的演讲稿开场白
2013/12/30 职场文书
2016教师校本研修心得体会
2016/01/08 职场文书
javascript条件式访问属性和箭头函数介绍
2021/11/17 Javascript
Python OpenCV实现图像模板匹配详解
2022/04/07 Python
mybatis-plus模糊查询指定字段
2022/04/28 Java/Android
Win11 21h2可以升级22h2吗?看看你的电脑符不符合要求
2022/07/07 数码科技