jQuery使用$ .each迭代对象

我有一个对象optionsoptions = {title : 'title1', name : 'name1', url : 'url1', etc.}

它作为参数传递给函数。 我正在尝试迭代该对象,将其传递给另一个函数evaluate ,并将结果存储在另一个对象opts ,如下所示:

 var opts = new Object(); $.each(options, function(key,value){ opts.key = evaluate(element, value); }); 

evaluate(element,value)运行正常,但问题是opts最终看起来像:

 {key : eval(element,url1)} 

代替

 {title : eval(element,title1), name : eval(element,name1), etc.} 

也就是说, key从字面上传递而不是被评估,并且每次迭代都会覆盖options的最后一个属性。

我的作业行中是否有正确的语法? 我也尝试过:

 opts = {key : eval(element,val)} 

得到与上述相同的结果。 我还可以将对象转换为$.each迭代中的数组。 我尝试了几种方法,但也没有成功。 如果有人能告诉我那条路线,那也很棒。

(这是一个jQuery插件,我正在Firefox中使用Firebug进行测试)。

在此先感谢您的帮助。

正如您所发现的,这是文字键’key’:

 opts.key = evaluate(element, value); 

要使用动态密钥,请使用[]

 opts[key] = evaluate(element, value); 

具体例子:

 var o = {}; o["test"] = "foo"; alert(o.test);