我有下面的代码可以使用,但我需要扩展它,所以我试图让它更简化。
success: function setData(data) {
$("#price" + lastchar).html(data.price);
$("#matricule" + lastchar).html(data.matricule);
$("#tag" + lastchar).html(data.tag);
$("#ins_yr1" + lastchar).html(data.ins_yr1);
$("#Totalacq" + lastchar).html(data.Totalacq);
}
像这样:
success: function (data){
var desc=[];
desc = ["price","matricule","tag","ins_yr1","Totalacq"];
for (var i=0;i<desc.length;i++){
$( "#" + desc[i] + lastchar).html(data.desc[i]);
}
}
但这不起作用,因为它不接受desc[i]
中的变量.html()
,至少不是我尝试的格式。
有什么想法吗? 谢谢!
答案 0 :(得分:3)
您的问题不在html
,而在于您尝试访问data
属性的方式。但你可以使用[]
来获取/设置它们,就像数组索引一样:
data[desc[i]]
换句话说,data.price
相当于data["price"]
。
答案 1 :(得分:1)
只要把它作为参考以备将来使用,我意识到我可以通过直接引用数组对象的键来使它更短。
success: function (data){
var keys = Object.keys(data);
for (var i=0;i<keys.length;i++){
$( "#" + keys[i] + lastchar).html(data[keys[i]]);
}
}