您当前的位置: 首页 >  jquery

wespten

暂无认证

  • 1浏览

    0关注

    899博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

深入学习jquery源码之map()

wespten 发布时间:2018-12-22 08:41:35 ,浏览量:1

概述

将一组元素转换成其他数组(不论是否是元素数组)

你可以用这个函数来建立一个列表,不论是值、属性还是CSS样式,或者其他特别形式。这都可以用'$.map()'来方便的建立。

参数

callback,给每个元素执行的函数

把form中的每个input元素的值建立一个列表。

Values:

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

结果

[ 

John, password, http://ejohn.org/

]

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

.map() 方法对于获得或设置元素集的值特别有用。


  
    
2
4
6
8

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

$(':checkbox').map(function() {
  return this.id;
}).get().join(',');
字符串:"two,four,six,eight"

map也可以遍历数组, 用法与 forEach 相似,实际效率还比不上foreach:

arr.map(function(value,index,array){
 
  //code
 
})

 

 

 

jquery的map()源码

(function (global, factory) {

    if (typeof module === "object" && typeof module.exports === "object") {

       module.exports = global.document ?
            factory(global, true) :
            function (w) {
                if (!w.document) {
                    throw new Error("jQuery requires a window with a document");
                }
                return factory(w);
            };
    } else {
        factory(global);
    }

    // Pass this if window is not defined yet
}(typeof window !== "undefined" ? window : this, function (window, noGlobal) {

    var version = "1.11.3",
        jQuery = function (selector, context) {
            return new jQuery.fn.init(selector, context);
        },

        // Support: Android            
关注
打赏
1665965058
查看更多评论
0.0376s