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 相关文章推荐
学习YUI.Ext 第二天
Mar 10 Javascript
利用javascript移动div层-javascript 拖动层
Mar 22 Javascript
通过JS自动隐藏手机浏览器的地址栏实现原理与代码
Jan 02 Javascript
js/jquery解析json和数组格式的方法详解
Jan 09 Javascript
JS实现3D图片旋转展示效果代码
Sep 22 Javascript
js判断日期时间有效性的方法
Oct 24 Javascript
javascript 闭包详解及简单实例应用
Dec 31 Javascript
vue中计算属性(computed)、methods和watched之间的区别
Jul 27 Javascript
vue中beforeRouteLeave实现页面回退不刷新的示例代码
Nov 01 Javascript
微信小程序实现打卡签到页面
Sep 21 Javascript
vue编写简单的购物车功能
Jan 08 Vue.js
angular4实现带搜索的下拉框
Mar 25 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
支持数组的ADDSLASHES的php函数
2010/02/16 PHP
PHP缓存技术的使用说明
2011/08/06 PHP
pdo中使用参数化查询sql
2011/08/11 PHP
php启动时候提示PHP startup的解决方法
2013/05/07 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
php实现html标签闭合检测与修复方法
2015/07/09 PHP
php使用fputcsv实现大数据的导出操作详解
2020/02/27 PHP
最短的javascript:地址栏载入脚本代码
2011/10/13 Javascript
JavaScript中“+”的陷阱深刻理解
2012/12/04 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
JS关闭窗口时产生的事件及用法示例
2016/08/20 Javascript
nodejs处理图片的中间件node-images详解
2017/05/08 NodeJs
Angular项目中$scope.$apply()方法的使用详解
2017/07/26 Javascript
JavaScript动态绑定详解
2017/09/14 Javascript
Bootstrap Table 搜索框和查询功能
2017/11/30 Javascript
Vue + better-scroll 实现移动端字母索引导航功能
2018/05/07 Javascript
jQuery解析json格式数据示例
2018/09/01 jQuery
微信小程序生成分享海报方法(附带二维码生成)
2019/03/29 Javascript
微信小程序如何实现精确的日期时间选择器
2020/01/21 Javascript
python进阶教程之异常处理
2014/08/30 Python
python BeautifulSoup设置页面编码的方法
2015/04/03 Python
python3+PyQt5重新实现QT事件处理程序
2018/04/19 Python
python3 property装饰器实现原理与用法示例
2019/05/15 Python
python中元组的用法整理
2020/06/15 Python
Kusmi茶美国官网:优质散叶茶和茶包
2019/10/13 全球购物
GAZMAN官网:澳大利亚领先的男装品牌
2019/12/19 全球购物
数据管理员的自我评价分享
2013/11/15 职场文书
护理实习自我鉴定
2013/12/14 职场文书
个人自荐书
2013/12/20 职场文书
销售心得体会
2014/01/02 职场文书
体育教育毕业生自荐信
2014/06/29 职场文书
安全检查汇报材料
2014/12/26 职场文书
新闻稿格式范文
2015/07/18 职场文书
开学季:喜迎新生,迎新标语少不了
2019/11/07 职场文书
pytorch 中nn.Dropout的使用说明
2021/05/20 Python
利用JuiceFS使MySQL 备份验证性能提升 10 倍
2022/03/17 MySQL