2013-04-17 48 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];