如何将变量名与字符串组合

时间:2013-06-23 08:10:37

标签: javascript jquery

我有这样的对象

var obj = {
   option1 : {
     title : "string", 
     options : {}
   },
   option2 : {
     title : "string", 
     options : {}
   },
   option3 : {
     title : "string", 
     options : {}
   },
   option4 : {
     title : "string", 
     options : {}
   }
}

我正在尝试根据html节点的索引获取标题

$("#id div").each(function(){
   $(this).html(obj.["option" + ($(this).index() + 1)].title);
})

1 个答案:

答案 0 :(得分:2)

$(this).html(obj.["option" + ($(this).index() + 1)].title);
//              ^ Get rid of this

所以你想要这个:

$(this).html(obj["option" + ($(this).index() + 1)].title);

方括号语法是点语法的替代。你使用其中一个,而不是两个。规范中call expressions的语法清楚地表明了这一点:

  

CallExpression
   MemberExpression参数
   CallExpression Arguments
   CallExpression [ 表达式 ]
   CallExpression . IdentifierName