jQuery使用$ .each迭代对象

时间:2009-12-13 19:58:50

标签: jquery arrays object iteration 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进行测试)。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:8)

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

opts.key = evaluate(element, value);

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

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

具体示例:

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