jQuery 使用 $.each 遍历对象
Posted
技术标签:
【中文标题】jQuery 使用 $.each 遍历对象【英文标题】:jQuery iterate over object with $.each 【发布时间】: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 【参考方案1】:正如您所发现的,这是文字键“key”:
opts.key = evaluate(element, value);
要使用动态密钥,请使用[]
:
opts[key] = evaluate(element, value);
具体例子:
var o = ;
o["test"] = "foo";
alert(o.test);
【讨论】:
非常感谢,这正是我所需要的!以上是关于jQuery 使用 $.each 遍历对象的主要内容,如果未能解决你的问题,请参考以下文章
jQuery$.each循环遍历详解,各种取值对比,$.each遍历数组对象Dom元素二维数组双层循坏类json数据等等