2013-04-17 49 views
2

我有这样的结构:如何使用jQuery和HTML选择元素来访问对象?

var data = { 
    'horizontal':{ 
     'static':[1,3,5,7,9], 
     'dynamic':[2,4,6,8] 
    }, 
    'vertical':{ 
     'static':[1,3,5,7,9], 
     'dynamic':[2,4,6,8] 
    } 
}; 

我有这样的HTML对象:

Direction: 
<select id="direction"> 
    <option value="horizontal">Horizontal</option> 
    <option value="vertictal">Vertictal</option> 
</select> 

Type: 
<select id="mytype"> 
    <option value="static">Static</option> 
    <option value="dynamic">Dynamic</option> 
</select> 

我可以接入到data.horizontal.static[2]某种程度上也是这样吗?

var result = data.[ $('#direction').val() ].[ $('#mytype').val() ][2]; 

有什么办法吗?

+1

之间 ']' 和 '[' 的[I有一个嵌套的数据结构/ JSON,我怎样可以访问一特定值 –

+0

可能重复?](HTTP除去点:/ /stackoverflow.com/questions/11922383/i-have-a-nested-data-structure-json-how-can-i-access-a-specific-value) –

+1

仅供参考,[没有这样的东西作为JSON对象](http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/)。 JSON是一种文本数据交换格式。你只需要一个JavaScript对象。 –

回答

1

你的语法是接近....你需要:

var result = data[ $('#direction').val() ][ $('#mytype').val() ][2]; 

注(方括号之间没有句)

+0

啊,你比我更了解这个问题,这是解决方案。 –

0

不知道你想要什么这里的值,但是你这是怎么获得你的价值观:

console.log(data['horizontal']); 
console.log(data['horizontal']['static']); 
console.log(data['horizontal']['static'][2]); 

小提琴:

http://jsfiddle.net/jj49G/

1

尝试除去点

var result = data[ $('#direction').val() ][ $('#mytype').val() ][2];