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查询数据返回object和字符串影响原因是什么
Aug 09 Javascript
jQuery Mobile框架中的表单组件基础使用教程
May 17 Javascript
JS把内容动态插入到DIV的实现方法
Jul 19 Javascript
jQuery如何封装输入框插件
Aug 19 Javascript
EasyUI折叠表格层次显示detailview详解及实例
Dec 28 Javascript
JS库particles.js创建超炫背景粒子插件(附源码下载)
Sep 13 Javascript
详解vue移动端日期选择组件
Feb 22 Javascript
Vue实现带进度条的文件拖动上传功能
Feb 23 Javascript
解决vue中无法动态修改jqgrid组件 url地址的问题
Mar 01 Javascript
Vue的H5页面唤起支付宝支付功能
Apr 18 Javascript
微信小程序 云开发模糊查询实现解析
Sep 02 Javascript
解决vue项目打包上服务器显示404错误,本地没出错的问题
Nov 03 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数组
2006/10/09 PHP
学习php设计模式 php实现建造者模式
2015/12/07 PHP
Ucren Virtual Desktop V2.0
2006/11/07 Javascript
一段利用WSH获取登录时间的jscript代码
2008/05/11 Javascript
yepnope.js 异步加载资源文件
2011/09/08 Javascript
基于SVG的web页面图形绘制API介绍及编程演示
2013/06/28 Javascript
通过length属性判断jquery对象是否存在
2013/10/18 Javascript
jQuery 取值、赋值的基本方法整理
2014/03/31 Javascript
jQuery中 prop() attr()使用详解
2015/05/19 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
canvas快速绘制圆形、三角形、矩形、多边形方法介绍
2016/12/29 Javascript
详解Vue2 无限级分类(添加,删除,修改)
2017/03/07 Javascript
jquery实现下拉菜单的手风琴效果
2017/07/23 jQuery
vue2.0的虚拟DOM渲染思路分析
2018/08/09 Javascript
jQuery实现的简单手风琴效果示例
2018/08/29 jQuery
基于vue-cli3+typescript的tsx开发模板搭建过程分享
2020/02/28 Javascript
Python 常用string函数详解
2016/05/30 Python
解决python爬虫中有中文的url问题
2018/05/11 Python
python3.4+pycharm 环境安装及使用方法
2019/06/13 Python
Python高并发解决方案实现过程详解
2020/07/31 Python
pip已经安装好第三方库但pycharm中import时还是标红的解决方案
2020/10/09 Python
倩碧美国官网:Clinique美国
2016/07/20 全球购物
navabi英国:设计师大码女装
2019/06/25 全球购物
幼儿教育感言
2014/02/05 职场文书
森林防火工作方案
2014/02/14 职场文书
幼儿园招生广告
2014/03/19 职场文书
植物生产学专业求职信
2014/08/08 职场文书
党支部党的群众路线对照检查材料
2014/09/24 职场文书
买房子个人收入证明
2014/10/12 职场文书
神龙架导游词
2015/02/11 职场文书
幼儿园圣诞节活动总结
2015/05/06 职场文书
2015年外贸业务员工作总结范文
2015/05/23 职场文书
母婴行业实体、电商模式全面解析
2019/08/01 职场文书
MySQL中几种插入和批量语句实例详解
2021/09/14 MySQL
Minikube搭建Kubernetes集群
2022/03/31 Servers