我正在尝试访问此功能以外的 myVariable 。请参阅以下代码:
var myVariable;
function drawBasic(){
...
myVariable = document.getElementById('chart_div3');
var chart = new google.visualization.LineChart(document.getElementById('chart_div'));
google.visualization.events.addListener(chart, 'ready', function () {
chart_div.innerHTML = '<img src="' + chart.getImageURI() + '">';
myVariable.innerHTML = chart.getImageURI();
myVariable = myVariable.innerHTML;
//prints out desired value
console.log(myVariable);
});
//prints out desired value
console.log(myVariable);
...
}
//prints out undefined
console.log(myVariable);
我知道 myVariable 是在函数外部定义的,所以我希望它可以在函数内部设置,然后值可以在其他地方使用,但我错了。所以我的问题是如何获取chart.getImageURI()的值并将其存储为函数drawBasic之外的值?
答案 0 :(得分:2)
我认为这是因为“ var = myVariable ”中的语法问题。我写了这个并且它工作正常。
var myVariable;
drawBasic();
function drawBasic(){
myVariable = "Test String";
//prints out desired value
console.log(myVariable);
}
//prints out undefined
console.log(myVariable);
答案 1 :(得分:0)
您可以在您的函数中使用jquery将chart.getImageURI()放在window.myVariable(始终可访问)或隐藏表单输入中: $( “#myHiddenItem”)。VAL(chart.getImageURI()) 以及你需要的价值: $( “#myHiddenItem”)。VAL()
答案 2 :(得分:0)
您的结果为undefined
的原因可能是由于您的代码的执行顺序:您的最后一个console.log()
在之后被称为,而 drawBasic()是定义,但可能之前 drawBasic()执行。
在函数内部,你可以这样做:
myVariable = chart.getImageURI();
调用函数时,将设置全局(因此可读的各处)变量myVariable的值。
执行drawBasic()之后,myVariable的值也应正确,在函数外部调用时也是如此。