【发布时间】:2011-12-24 12:24:40
【问题描述】:
我暂时陷入了看似非常简单的 JavaScript 问题,但也许我只是缺少正确的搜索关键字!
假设我们有一个对象
var r = { a:1, b: {b1:11, b2: 99}};
访问99有几种方式:
r.b.b2
r['b']['b2']
我想要的是能够定义一个字符串
var s = "b.b2";
然后使用
访问 99r.s or r[s] //(which of course won't work)
一种方法是为其编写一个函数,将字符串拆分为点,并可能递归/迭代地获取属性。但是有没有更简单/更有效的方法?这里的任何 jQuery API 有什么用处吗?
【问题讨论】:
-
您可以随时构建一个字符串并在需要时
eval()它,但我认为没有人会认为这是一个好主意。按照您描述的方式解析字符串更安全。 -
@jrummell 在 struts2 应用程序中,我使用了 jqgrid,它在列格式化程序中获取 rowObject。 rowObject 对象结构遵循列数据模型,其中包含一些我需要在循环内以通用方式访问的嵌套属性。
标签: javascript jquery