传递JS变量名功能
因此,这里是我想做的事:传递JS变量名功能
-
设为我命名为
data_1
变量。var data_1 = { "y_legend": { "text": "# of Patients", "style": "{font-size: 20px; color: #778877}" }, "x_legend": { "text": "AUG 09 - OCT 09", "style": "{font-size: 20px; color: #778877}" } };
-
在一个下拉用户选择与调用
load('data_1')
的data_1
值的选项。function load(data) { tmp = findSWF("my_chart"); x = tmp.load(JSON.stringify(data)); }
我的问题:我选择的选项与价值data_1
而不是变量本身。 所以在我的功能load('data_1')
,当我alert(data)
我得到data = 'data_1'
。
那么如何通过只传递字符串的名称来获取变量data_1
的内容?
var data_1 = { /* data goes here */ };
var data_choices = {1: data_1, 2: data_2, /* and so on */};
var load = function (data) {
// data is "1", "2", etc. If you want to use the full data_1 name, change
// the data_choices object keys.
var tmp = findSWF("my_chart");
var x = tmp.load(JSON.stringify(data_choices[data]));
}
,或者你可以简单地使用
alert(eval(data))
哇!使用eval()时你必须非常小心! http://stackoverflow.com/questions/86513/why-is-using-javascript-eval-function-a-bad-idea – 2009-09-02 18:38:53
很好看他粘贴的代码我没有看到很多问题与评估... – 2009-09-02 18:50:42
as在帖子中的第二个答案中指出:eval并不总是邪恶的。有些时候它完全合适。 – 2009-09-02 18:52:03
如果它是一个全局变量,可以用
window['the_variable_name']
例如引用它
function load(data)
{
tmp = findSWF("my_chart");
x = tmp.load(JSON.stringify(window[data]));
}
回答了我的需求(和标题大声笑)。 TY – 2013-04-15 21:54:36
谢谢!这工作完美!我将不得不尝试上面的窗口。 – Fostah 2009-09-02 22:00:08