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 相关文章推荐
基于jquery的lazy loader插件实现图片的延迟加载[简单使用]
May 07 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
javascript实现五星评价代码(源码下载)
Aug 11 Javascript
jquery选择器简述
Aug 31 Javascript
AngularJS动态加载模块和依赖的方法分析
Nov 08 Javascript
angularJS 发起$http.post和$http.get请求的实现方法
May 18 Javascript
微信小程序使用Socket的实例
Sep 19 Javascript
详解从零搭建 vue2 vue-router2 webpack3 工程
Nov 22 Javascript
在vue-cli的组件模板里使用font-awesome的两种方法
Sep 28 Javascript
webpack的 rquire.context用法实现工程自动化的方法
Feb 07 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
Feb 16 Javascript
用JS写一个发布订阅模式
Nov 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中使用接口实现工厂设计模式的代码
2012/06/17 PHP
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
2014/11/19 PHP
php实现文件上传及头像预览功能
2017/01/15 PHP
PHP下用Swoole实现Actor并发模型的方法
2019/06/12 PHP
jquery命令汇总,方便使用jquery的朋友
2012/06/26 Javascript
浅析return false的正确使用
2013/11/04 Javascript
JavaScript数值数组排序示例分享
2014/05/27 Javascript
js实现下拉框选择要显示图片的方法
2015/02/16 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
Bootstrap缩略图与警告框学习使用
2017/02/08 Javascript
Angular中$state.go页面跳转并传递参数的方法
2017/05/09 Javascript
vue中如何动态绑定图片,vue中通过data返回图片路径的方法
2018/02/07 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
JS如何把字符串转换成json
2020/02/21 Javascript
JS异步宏队列微队列原理详解
2020/09/09 Javascript
Pyhton中防止SQL注入的方法
2015/02/05 Python
对于Python的Django框架部署的一些建议
2015/04/09 Python
Python使用smtplib模块发送电子邮件的流程详解
2016/06/27 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
python将一组数分成每3个一组的实例
2018/11/14 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
解决Python3 被PHP程序调用执行返回乱码的问题
2019/02/16 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
2019/04/11 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
python实现猜数游戏
2020/03/27 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
2020/04/21 Python
HTML5 Canvas绘制文本及图片的基础教程
2016/03/14 HTML / CSS
世界上最大的乐器零售商:Guitar Center
2017/11/07 全球购物
英文翻译的自我评价语句
2013/10/04 职场文书
班长岗位职责
2013/11/10 职场文书
物控部经理职务说明书
2014/02/25 职场文书
公证书样本
2014/04/10 职场文书
竞聘演讲稿开场白
2014/08/25 职场文书
贷款工作证明模板
2015/06/12 职场文书
施工安全责任协议书
2016/03/23 职场文书
爱国之歌(8首)
2019/09/29 职场文书