当我在变量中有名称时访问属性

时间:2011-09-16 12:58:19

标签: javascript

我有一个这样的对象:

var items = {
  foobar: {
    foo: 'bar'
  }
}

我在用户在表单中选择它时收到的值中有'foobar'这个名称,如下所示:

var item = $('select').val(); // which is 'foobar'

当我只知道该变量中的名称“foobar”时,如何访问items.foobar.foo?它不会将“item”解析为items.item.foo ...

中的变量

我想这有点像在PHP中执行$items[$item]['foo'],但我不知道如何在Javascript中执行此操作。

感谢。

6 个答案:

答案 0 :(得分:1)

您可以通过以下方式直接访问它:items[foobar].foo

答案 1 :(得分:1)

item中拥有所需项目的名称,您可以使用squate括号访问该属性:

var item = "foobar";
alert(items[item].foo);

答案 2 :(得分:0)

在JS中,它与PHP非常相似。例如,foo['bar']foo.bar相同。因此,foo[something]将访问名称存储在foo变量中的something成员。

括号表示法具有处理任意键的优点,例如:数字和包含非字母数字字符的字符串。

答案 3 :(得分:0)

是的,它将是items[ item ]['foo'];:)

答案 4 :(得分:0)

好吧,我猜你可以试试你的PHP建议:

items[item]['foo'];

items[item].foo;

答案 5 :(得分:0)

var item = $('select').val(); // which is 'foobar'
var foo = items[item].foo;

var foo = items[item]['foo'];