jQuery的迭代与$。每个对象
题
我有一个对象options
:options = {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使用萤火虫测试)。
在此先感谢您的帮助。
解决方案
正如你已经发现这是字面的关键“钥匙”:
opts.key = evaluate(element, value);
要使用动态密钥利用[]
:
opts[key] = evaluate(element, value);
具体示例:
var o = {};
o["test"] = "foo";
alert(o.test);
不隶属于 StackOverflow