繁体   English   中英

如何从函数内部获取变量?

[英]How to get variable from within the function?

我正在尝试在此函数之外访问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之外的值?

我认为这是因为“ var = myVariable ”中的语法存在问题。 我写了这个,它工作正常。

var myVariable;
drawBasic();
function drawBasic(){
   myVariable = "Test String";
   //prints out desired value
   console.log(myVariable);
}
//prints out undefined
console.log(myVariable);

jsfiddle 示例

您可以将您的 chart.getImageURI() 放在 window.myVariable (始终可访问)或隐藏表单输入中,在您的函数中使用 jquery : $("#myHiddenItem").val(chart.getImageURI()) 以及您的位置需要值:$("#myHiddenItem").val()

您的结果undefined的原因可能是因为您的代码执行顺序:您的最后一个console.log()drawBasic()定义之后调用,但可能drawBasic()执行之前调用。

在函数内部,您可以执行以下操作:

myVariable = chart.getImageURI();

调用函数时将设置全局(因此在任何地方都可读)变量 myVariable 的值。

执行 drawBasic() 后,myVariable 的值应该是正确的,在函数外部调用时也是如此。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM