jquery的map与each

1.对象数组变数组,或变字符串

	var ids = $.map($("#deviceTable").bootstrapTable('getSelections'), function (row) {
        return row.id;
    });

jQuery下有个概念叫“类数组”,比如$( " li " ),当取到一个集合的时候,会有数组的一些属性,但是instancseof Array仍然是false。但是var a=$( "li" ).get()这样处理一下,然后instancseof Array就返回true。 要注意var a=$( "li" ).get(1)里头加序列号可以取到单个元素,这些元素的性质不是jQuery对象,而是js对象,所以不可直接用jquery方法。 map()的功能主要有两步,第一步就是遍历,第二步就是替换。
$( " li " ).map( function(  ){
  return  $(this).text(  );  // 注意return关键字不可少
} )

map先遍历,每一项都返回一个text()值,然后map会将这些值自动去替换$("li")集合的每一项值,所以这个时候还是个类数组(因为还是$(" li ")的壳子),不是个真正的数组。于是后面加个get()操作就变成真正的数组了,于是可以用join()这样专属于数组的方法。

 $( " li " ).map( function(  ){
      return  $(this).text(  );
  } ).get(  ).join("%")            // 拼接成字符串,中间用“%”隔开

2.each

前些天记录了java中for循环取map,发现用jquery的each一样可以取map(我称之为js的map,不要较劲),且顺序和map中顺序一致。废话少说,看代码  
  
Js代码   
var map =      
    {     
         地名: ["北京","天津","上海"],     
         民族: ["汉族","藏族","维吾尔族"]     
    };     
    
$.each(map,function(key,values){     
    console.log(key);     
    $(values).each(function(){     
        console.log("/t" + this);     
    });     
 });    
  
 var map =   
    {  
         地名: ["北京","天津","上海"],  
         民族: ["汉族","藏族","维吾尔族"]  
    };  
  
 $.each(map,function(key,values){  
    console.log(key);  
    $(values).each(function(){  
        console.log("/t" + this);  
    });  
  });  
  
如果安装了firebug,控制台输出如下树状结构:  
地名   
      北京   
      天津   
      上海   
民族   
      汉族   
      藏族   
      维吾尔族   
注意:jquery中的$().each和$.each的区别,前者只能遍历数组,后者可以遍历数组和对象   

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值