【发布时间】:2010-12-26 05:38:48
【问题描述】:
我有一个对象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 中使用 Firebug 进行测试)。
提前感谢您的帮助。
【问题讨论】:
-
这能回答你的问题吗? Iterate over Object Literal Values
标签: jquery arrays object iteration each