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 相关文章推荐
pjblog中的UBBCode.js
Apr 25 Javascript
(仅IE下有效)关于checkbox 三态
May 12 Javascript
一个简单的javascript类定义例子
Sep 12 Javascript
基于js disabled=&quot;false&quot;不起作用的解决办法
Jun 26 Javascript
jquery提交form表单简单示例分享
Mar 03 Javascript
JavaScript bold方法入门实例(把指定文字显示为粗体)
Oct 17 Javascript
JavaScript中的alert()函数使用技巧详解
Dec 29 Javascript
JavaScript运算符小结
Jun 03 Javascript
浅谈关于axios和session的一些事
Jul 13 Javascript
vue 设置proxyTable参数进行代理跨域
Apr 09 Javascript
jQuery插件实现弹性运动完整示例
Jul 07 jQuery
详解在React项目中安装并使用Less(用法总结)
Mar 18 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
利用Memcached在php下实现session机制 替换PHP的原生session支持
2010/08/21 PHP
PHP显示今天、今月、上月、今年的起点/终点时间戳的代码
2011/05/25 PHP
php 购物车完整实现代码
2014/06/05 PHP
10个简化PHP开发的工具
2014/12/25 PHP
jquery下组织javascript代码(js函数化)
2010/08/25 Javascript
基于jquery的cookie的用法
2011/01/10 Javascript
jquery如何把参数列严格转换成数组实现思路
2013/04/01 Javascript
jQuery插件实现屏蔽单个元素使用户无法点击
2013/04/12 Javascript
jQuery中bind与live的用法及区别小结
2014/01/27 Javascript
js 声明数组和向数组中添加对象变量的简单实例
2016/07/28 Javascript
JavaScript学习笔记整理_setTimeout的应用
2016/09/19 Javascript
jQuery仿写百度百科的目录树
2017/01/03 Javascript
微信小程序-拍照或选择图片并上传文件
2017/01/06 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
详解使用angularjs的ng-options时如何设置默认值(初始值)
2017/07/18 Javascript
AngularJS中table表格基本操作示例
2017/10/10 Javascript
jQuery+ajax实现动态添加表格tr td功能示例
2018/04/23 jQuery
ng-events类似ionic中Events的angular全局事件
2018/09/05 Javascript
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
js中调用微信的扫描二维码功能的实现代码
2020/04/11 Javascript
[55:23]VGJ.T vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/20 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python实现多条件筛选目标数据功能【测试可用】
2018/06/13 Python
Tensorflow中使用tfrecord方式读取数据的方法
2018/06/19 Python
python 划分数据集为训练集和测试集的方法
2018/12/11 Python
解决Python3.8用pip安装turtle-0.0.2出现错误问题
2020/02/11 Python
python读取hdfs并返回dataframe教程
2020/06/05 Python
Selenium环境变量配置(火狐浏览器)及验证实现
2020/12/07 Python
python工具快速为音视频自动生成字幕(使用说明)
2021/01/27 Python
详解CSS3 Media Queries中媒体属性的使用
2016/02/29 HTML / CSS
《只有一个地球》教学反思
2014/02/14 职场文书
顶碗少年教学反思
2014/02/21 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
教师考核表个人总结
2015/02/12 职场文书
基于Python实现流星雨效果的绘制
2022/03/18 Python