【问题标题】:Accessing variable from different function从不同的函数访问变量
【发布时间】:2016-06-23 19:56:14
【问题描述】:

我在 HTML 中有以下代码,它创建了一个按钮,当单击该按钮时,会在我的页面中创建一些问题,工作正常。

<input type="number" name="quantity" id="num_questions" min="1" max="99"><br>
<input type="button" name="go" id="go_button" value="Go" onclick="createQuestions()"><br>

但是,在我的函数createQuestions() 中,我在 JavaScript 中定义了一个变量,它基于我的 HTML 代码中输入的数字,如上所示。

var number = document.getElementById('num_questions').value;

我有另一个按钮调用一个单独的函数,但我需要我在另一个函数中本地定义的变量号。有什么办法可以获取该变量并在全球范围内使用它?我尝试在我的函数之外定义它,但由于 onclick 事件仅调用该函数,它不会创建变量。

其他按钮:

<input type="submit" name="submit" value="Create Tree" onclick="displayData()">

【问题讨论】:

  • 如果您在全局范围内定义 number 变量,您应该可以在任何地方访问它。当您运行 createQuestions() 函数时,您可以将其分配给一个值。你能把剩下的JS贴在这里吗?完全解决问题会很有帮助。

标签: javascript html


【解决方案1】:

根据How to declare a global variable in a .js file,您可以在调用任何函数之前定义一个变量,然后在不同的函数中使用它。

var global1 = "I'm a global!";

function setGlobal () {
    global1= document.getElementById('num_questions').value;
}
function testGlobal () {
    alert(global1);
}

【讨论】:

  • 但是当我在单击按钮时调用该函数 setGlobal() 时,不会声明该变量,因为单击按钮仅调用该函数..
  • 你不能在函数内部声明它,但你可以重新分配变量。而且它是可访问的,因为它是全球性的。
  • 啊哈!好了,这正是我所需要的。我想知道为什么我从来没有想过这个。谢谢!
【解决方案2】:

无法从函数外部访问函数的局部变量,因此您有四种选择:

  1. 声明一个全局变量!
  2. 编写一个单独的函数来为您获取值
  3. 创建一个包含所需值的对象
  4. 使用 getElementById() 从新函数中获取值

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-13
    • 1970-01-01
    相关资源
    最近更新 更多