首页 > 新手,json基础应用不会呀

新手,json基础应用不会呀

var data=[];
  var jn={};
  var obj;
  $(".btn-success").click(function(){
    $(".list-group li").each(function(e){
      obj=$(".list-group li").eq(e);
      jn.id=obj.attr('id');
      jn.sort=e;
      data.push(jn);
      console.log(jn);
    })
    console.log(data);
  })

为什么data里的值都是一样的


var data=[];
var jn={};
var obj;
$(".btn-success").click(function(){

$(".list-group li").each(function(e,item){
      jn ={};
      jn.id=$(item).attr('id');
      jn.sort=e;
      data.push(jn);
      console.log(jn);
})
console.log(data);

})


因为你的 jn 一直都是同一个.
把你的 var jn = {}; 放在这一行后面obj=$(".list-group li").eq(e);


因为jn引用的都是同一个对象,你塞了99次同一个jn到data里,所以会一样。

var data=[];
  var obj;
  $(".btn-success").click(function(){
    $(".list-group li").each(function(e){
      obj=$(".list-group li").eq(e);
      var jn={};
      jn.id=obj.attr('id');
      jn.sort=e;
      data.push(jn);
      console.log(jn);
    })
    console.log(data);
  })

改一下再试试


对象是引用类型,放在堆里面,当把对象放到数组里时,其实是指向原来的对象,然后,对象变了,也就是数组里面对象变了。(感觉自己说的有些混乱)

【热门文章】
【热门文章】