当前位置: 首页 > news >正文

【jQuery 遍历】 - map() 方法

实例

构建表单中所有值的列表:

$("p").append( $("input").map(function(){
  return $(this).val();
}).get().join(", ") );
<!DOCTYPE html>
<html>
<head>
  <style>p { color:red; }</style>
  <script type="text/javascript" src="/jquery/jquery.js"></script>
</head>

<body>
  <p><b>Values: </b></p>
  <form>
    <input type="text" name="name" value="John"/>
    <input type="text" name="password" value="password"/>
    <input type="text" name="url" value="http://w3school.com.cn/"/>
  </form>

<script>
    $("p").append( $("input").map(function(){
      return $(this).val();
    }).get().join(", ") );
</script>

</body>
</html>


定义和用法

map() 把每个元素通过函数传递到当前匹配集合中,生成包含返回值的新的 jQuery 对象。

语法

.map(callback(index,domElement))
参数描述
callback(index,domElement)对当前集合中的每个元素调用的函数对象。

详细说明

由于返回值是 jQuery 封装的数组,使用 get() 来处理返回的对象以得到基础的数组。

.map() 方法对于获得或设置元素集的值特别有用。请思考下面这个带有一系列复选框的表单:

<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="checkbox" value="8" id="eight" name="number[]">
    </div>
  </fieldset>
</form>

我们能够获得复选框 ID 组成的逗号分隔的列表:

$(':checkbox').map(function() {
  return this.id;
}).get().join(',');

<!DOCTYPE html>
<html>
<head>
  <style>p { color:red; }</style>
  <script type="text/javascript" src="/jquery/jquery.js"></script>
</head>


<body>
<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="checkbox" value="8" id="eight" name="number[]">
    </div>
  </fieldset>
</form>


<p><b>Values: </b></p>


<script>
  $("p").append($(':checkbox').map(function() {
    return this.id;
  }).get().join(','));
</script>


</body>
</html>

本次调用的结果是字符串:"two,four,six,eight"。

在 callback 函数内部,this 引用每次迭代的当前 DOM 元素。该函数可返回单独的数据项,或者是要被插入结果集中的数据项的数组。如果返回的是数组,数组内的元素会被插入集合中。如果函数返回 null 或 undefined,则不会插入任何元素。

相关文章:

  • HTML中的Meta http-equiv属性详解(转)
  • 【jQuery 】参考手册 - 遍历
  • 在构造方法中存在异常的惯用处理法
  • 在Ajax中使用XML通信
  • 平衡二叉树旋转
  • 用XPath和XSLT来更好的处理XML
  • sublime text3主题透明
  • JAR文件包及jar命令详解
  • String和Integer的特例
  • 卸载 Microsoft SQL Server 2008(亲身实践过的,完全可以卸载干净!)
  • Java项目打包工具安装失败解决方法
  • phpstorm+Xdebug断点调试PHP
  • java项目使用exe4j打包成exe文件
  • Express框架使用以及数据库公共操作类整理(Win7下的NodeJs)
  • Java对于私有变量的“暴力反射”技术
  • 【347天】每日项目总结系列085(2018.01.18)
  • 2019年如何成为全栈工程师?
  • Computed property XXX was assigned to but it has no setter
  • CSS中外联样式表代表的含义
  • express如何解决request entity too large问题
  • golang 发送GET和POST示例
  • JavaScript学习总结——原型
  • OSS Web直传 (文件图片)
  • Python - 闭包Closure
  • Vue2 SSR 的优化之旅
  • yii2权限控制rbac之rule详细讲解
  • 欢迎参加第二届中国游戏开发者大会
  • 回顾 Swift 多平台移植进度 #2
  • 学习ES6 变量的解构赋值
  • 赢得Docker挑战最佳实践
  • - 语言经验 - 《c++的高性能内存管理库tcmalloc和jemalloc》
  • MyCAT水平分库
  • ​力扣解法汇总1802. 有界数组中指定下标处的最大值
  • #define,static,const,三种常量的区别
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • #经典论文 异质山坡的物理模型 2 有效导水率
  • %3cli%3e连接html页面,html+canvas实现屏幕截取
  • (13)[Xamarin.Android] 不同分辨率下的图片使用概论
  • (附源码)spring boot公选课在线选课系统 毕业设计 142011
  • (原創) 人會胖會瘦,都是自我要求的結果 (日記)
  • ./和../以及/和~之间的区别
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .net 验证控件和javaScript的冲突问题
  • .net实现客户区延伸至至非客户区
  • /etc/X11/xorg.conf 文件被误改后进不了图形化界面
  • ?.的用法
  • @Controller和@RestController的区别?
  • @RequestBody与@ModelAttribute
  • [2016.7.Test1] T1 三进制异或
  • [20190401]关于semtimedop函数调用.txt
  • [AX]AX2012 AIF(四):文档服务应用实例
  • [BIZ] - 1.金融交易系统特点
  • [C# 网络编程系列]专题六:UDP编程
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [cocos creator]EditBox,editing-return事件,清空输入框