如何解决:“无法获取未定义或空引用的属性'值'”

时间:2019-05-11 20:01:26

标签: javascript html getelementbyid

我正在为我和我的朋友制作一个简单的编码器/解码器,以便彼此在代码中交谈,或者至少应该很简单。当我尝试引用任何元素时,我一直收到错误消息“无法获取未定义或空引用的属性'值'”。我觉得我在做一些很傻的事情,很容易修复,但是看不到。

我已经看过几个相关的问题,并且正在尝试一堆建议的东西,但是似乎没有任何效果。顺便说一句,如果有帮助,我正在使用Microsoft Edge。

var inMsg = document.getElementById("input")
var outMsg = document.getElementById("output")

document.addEventListener('keypress', (event) => {
  if (event.key == 'Enter') {
    try {
      event.preventDefault()
    } catch (e) {
      console.log(e)
    }
    try {
      console.log(inMsg.value)

    } catch (e) {
      console.log(e)
    }
  }
})
<html>

<head>
  <script src="./main.js" type="text/javascript"></script>
  <style>

  </style>
</head>

<body>
  <div>
    <h2>Paste Coded Message Here -></h2>
    <textarea id="input" value=""></textarea>

    <textarea id="output"></textarea>
  </div>
</body>

</html>

通常,我可以只记录该值没有问题,但是当我用console.log记录时,它表示该元素为null。

2 个答案:

答案 0 :(得分:0)

尝试将defer添加到脚本标签中,如下所示:

<script src="./main.js" type="text/javascript" defer></script>

我相信在脚本执行时html解析器尚未到达您的inMsg元素,因此该元素的值为undefined

让我知道是否可行!

答案 1 :(得分:0)

将前两行移到添加事件侦听器函数中。可能会在dom准备就绪且isMag变量填充为null之前调用此函数。