首页 > 解决方案 > 如何解决:“无法获取未定义或空引用的属性‘值’”

问题描述

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

我已经看过几个相关的问题,并且一直在尝试一堆建议的东西,但似乎没有任何效果。顺便说一句,如果这有所作为,我正在使用 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 时它说元素为空。

标签: javascripthtmlgetelementbyid

解决方案


尝试defer像这样添加到您的脚本标签:

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

我相信 html 解析器在脚本执行时还没有到达你的inMsg元素,所以元素的值是undefined.

让我知道这是否有效!


推荐阅读