javascript getElementById外部函数​​不起作用

时间:2019-01-26 14:34:01

标签: javascript function variables scope getelementbyid

我对javascript还是比较陌生,因此可以简单地猜出数字程序。我的问题是这样:

为什么它仅在以下情况下起作用?

var myNumber = document.getElementById(“ myNumber”)。value;

在函数中定义。我以为,如果在函数外部定义它,它将在其中使用“范围b”?

谢谢您的帮助。

<p> Enter your number 1-10 <input id="myNumber" type="text"> </p>
<button id="btn1">Go</button>



<script type="text/javascript">
  document.getElementById("btn1").onclick = function() {
    var myNumber = document.getElementById("myNumber").value;

    var number = parseInt(myNumber);

    var count = 1;
    var computerGuess = Math.floor((Math.random() * 10) + 1);

    while (computerGuess !== number) {

      computerGuess = Math.floor((Math.random() * 10) + 1);
      count++;
    }

    alert("you guessed it" + " in " + count + " guesses");
  }
</script>

1 个答案:

答案 0 :(得分:-1)

当您在全局范围内使用document.getElementById时,如果 脚本位于您要访问的元素上方。因为它可以在创建之前通过id获取元素 解决方案1.在所有元素的最后使用所有脚本标签 解决方案2.使用这种方式

<!DOCTYPE html>
<html>

<body>
<script>
var globalElm;
function start(){
    globalElm = document.getElementById('elm')
}
setTimeout(start,50);
</script>
<div id="elm"></div>
</body>

</html>