3

我有下面的代码,但我需要扩展它,所以我试图让它更精简。

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()至少不接受我试图这样做的格式。

有任何想法吗?谢谢!

4

2 回答 2

3

您的问题不在于html,而在于您尝试访问data属性的方式。但是您可以使用 获取/设置它们[],就像数组索引一样:

data[desc[i]]

换句话说,data.price等价于data["price"]

于 2013-03-03T00:41:13.593 回答
1

只是留下它作为将来使用的参考,我意识到我可以通过直接引用数组对象的键来使它更短。

success: function (data){

    var keys = Object.keys(data);
    for (var i=0;i<keys.length;i++){
        $( "#" + keys[i] + lastchar).html(data[keys[i]]);
    }
}
于 2013-03-04T11:14:59.377 回答