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 相关文章推荐
js word表格动态添加代码
Jun 07 Javascript
javascript学习笔记(二) js一些基本概念
Jun 18 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
May 06 Javascript
jquery 简单应用示例总结
Aug 09 Javascript
jQuery实现表格行上移下移和置顶的方法
May 22 Javascript
jQuery实现TAB选项卡切换特效简单演示
Mar 04 Javascript
浅析C/C++,Java,PHP,JavaScript,Json数组、对象赋值时最后一个元素后面是否可以带逗号
Mar 22 Javascript
老生常谈JQuery data方法的使用
Sep 09 Javascript
需要牢记的JavaScript基础知识
Sep 25 Javascript
Bootstrap table使用方法总结
May 10 Javascript
Angular2搜索和重置按钮过场动画
May 24 Javascript
JS实现动态无缝轮播
Jan 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
2020显卡排行榜天梯图 显卡天梯图2020年3月最新版
2020/04/02 数码科技
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP设计模式之单例模式原理与实现方法分析
2018/04/25 PHP
php实现根据身份证获取精准年龄
2020/02/26 PHP
javascript 全等号运算符使用说明
2010/05/31 Javascript
JS getAttribute和setAttribute(取得和设置属性)的使用介绍
2013/07/10 Javascript
js之事件冒泡和事件捕获详细介绍
2013/10/28 Javascript
jquery中 $.expr使用实例介绍
2014/06/09 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
利用JavaScript脚本实现滚屏效果的方法
2015/07/07 Javascript
JS处理json日期格式化问题
2015/10/01 Javascript
jQuery EasyUI中DataGird动态生成列的方法
2016/04/05 Javascript
nodejs和php实现图片访问实时处理
2017/01/05 NodeJs
angularjs点击图片放大实现上传图片预览
2017/02/24 Javascript
jQuery、layer实现弹出层的打开、关闭功能
2017/06/28 jQuery
Angular.js ng-file-upload结合springMVC的使用教程
2017/07/10 Javascript
解决vue打包之后静态资源图片失效的问题
2018/02/21 Javascript
JS动画定时器知识总结
2018/03/23 Javascript
原生js实现的观察者和订阅者模式简单示例
2020/04/18 Javascript
JS获取当前时间戳方法解析
2020/08/29 Javascript
9个JavaScript日常开发小技巧
2020/10/06 Javascript
element-ui中el-upload多文件一次性上传的实现
2020/12/02 Javascript
Python中使用PyHook监听鼠标和键盘事件实例
2014/07/18 Python
Python解决走迷宫问题算法示例
2018/07/27 Python
Python基础学习之时间转换函数用法详解
2019/06/18 Python
PyTorch的深度学习入门教程之构建神经网络
2019/06/27 Python
利用python实现周期财务统计可视化
2019/08/25 Python
解决python web项目意外关闭,但占用端口的问题
2019/12/17 Python
pytorch实现从本地加载 .pth 格式模型
2020/02/14 Python
python中的时区问题
2021/01/14 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
丝芙兰法国官网:SEPHORA法国
2016/09/01 全球购物
维氏瑞士军刀英国网站:Victorinox英国
2019/07/04 全球购物
State Cashmere官网:半零售价可持续蒙古羊绒
2020/02/26 全球购物
会计专业大学生求职信范文
2014/01/28 职场文书
试用期自我鉴定范文
2014/03/20 职场文书