有这么一段代码:
var datas=[];
var data={};
var i=0;
$(".baby-panel").each(function(){
var baby_id=$(this).children(".babyid").attr("baby_id");
var baby_name=$(this).children(".babyname").find("input[name='baby"+i+"_name']").val().trim();
var baby_sex=$(this).children(".babysex").find("input[type=radio]:checked").val();
var baby_birth=$(this).children(".babybirth").find(".form-control").val();
data["id"]=baby_id;
data["name"]=baby_name;
data["sex"]=baby_sex;
data["birth"]=baby_birth;
datas[i]=data;
i++;
});
问:如何循环将data的数据添加到datas中,现在datas的数据都是data的最后一条记录。
例如:data={["id":1,"name":1,"sex":1,"birth":2014-05-05],["id":2,"name":2,"sex":2,"birth":2014-06-05]}
经过each()遍历后,datas的输出*却是*[{"id":"2","name":"2","sex":"2","birth":"2014-06-05"},{"id":"2","name":"2","sex":"2","birth":"2014-06-05"}],
而不是:[{"id":"1","name":"1","sex":"1","birth":"2014-05-05"},{"id":"2","name":"2","sex":"2","birth":"2014-06-05"}]
var datas=[];
//var data={};//把data放到循环里面,否则会覆盖
var i=0;
$(".baby-panel").each(function(){
** var data={};//每次新建一个data**
var baby_id=$(this).children(".babyid").attr("baby_id");
var baby_name=$(this).children(".babyname").find("input[name='baby"+i+"_name']").val().trim();
var baby_sex=$(this).children(".babysex").find("input[type=radio]:checked").val();
var baby_birth=$(this).children(".babybirth").find(".form-control").val();
data["id"]=baby_id;
data["name"]=baby_name;
data["sex"]=baby_sex;
data["birth"]=baby_birth;
** datas.push(data);**
i++;
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。