动态检索JavaScript属性值

时间:2015-06-12 17:31:30

标签: javascript javascript-objects

我正在尝试动态更改用户可用的选项。用户将选择1或2.一旦他们选择了值,我需要加载与该值相关的选项。目前,我有以下内容:

var json = {'1':[{ 'value':'A', 'text':'Option - A'}, { 'value':'B', 'text':'Option - B'}], '2':[{ 'value':'A', 'text':'Choice - A'}, { 'value':'B', 'text':'Choice - B'}]};

var userWants = '1';
alert(json[userWants]);

奇怪的是,警报窗口只显示,。我不明白为什么。我做错了什么?

3 个答案:

答案 0 :(得分:1)

警报无法以自然形式显示JSON个对象。请尝试记录



var json = {'1':[{ 'value':'A', 'text':'Option - A'}, { 'value':'B', 'text':'Option - B'}], '2':[{ 'value':'A', 'text':'Choice - A'}, { 'value':'B', 'text':'Choice - B'}]};

var userWants = '1';
console.log(json[userWants]);




另请参阅how to alert javascript object

答案 1 :(得分:1)

警报使用.toString()将对象转换为字符串,这不会给您带来不错的输出:

var a = {'value': 'A', 'text': 'Option - A'};
alert(a); // should alert [object Object]

您可以使用JSON.stringify很好地显示对象:

alert(JSON.stringify(a)); // should alert {"value":"A","text":"Option - A"}

或者:

var json = {'1':[{ 'value':'A', 'text':'Option - A'}, { 'value':'B', 'text':'Option - B'}], '2':[{ 'value':'A', 'text':'Choice - A'}, { 'value':'B', 'text':'Choice - B'}]};
var userWants = '1';
alert(JSON.stringify(json[userWants])); // should alert a nicely-formatted list

答案 2 :(得分:0)

使用console.log(json[userWants]);代替警报。

您可以使用快捷方式Ctrl + Shift + J或在Firefox中使用Firebug for Firefox在Chrome中打开输出来查看控制台中的输出。