不接受Jquery .html()中的变量

时间:2013-03-03 00:39:06

标签: jquery

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

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(),至少不是我尝试的格式。

有什么想法吗? 谢谢!

2 个答案:

答案 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]]);
    }
}