【问题标题】:JavaScript Uncaught TypeError: myTable is nullJavaScript 未捕获类型错误:myTable 为空
【发布时间】:2022-01-10 23:16:44
【问题描述】:

加载后,我尝试在我的网页上显示我的数据库元素。
我使用 AJAX 获取这些元素并且效果很好。
问题是当我尝试分配容器 (myTable) 以将我的元素 (elementsOfDataBase) 放在那里时。
我在控制台中收到错误“JavaScript Uncaught TypeError: myTable is null”。
我使用 DOM getElementById。 ID 'my-Table' 是唯一的。
知道我做错了什么吗?

myJs.js

$.ajax({
  type: 'GET',
  url: 'myUrl/',
  success: function(response){
    console.log('success')
    let elementsOfDataBase = response.table
    const myTable = document.getElementById("my-Table");
    elementsOfDataBase.map(item => {
      const div = document.createElement('div')
      div.innerHTML += item.fields.item
      div.innerHTML += '<br>'
      myTable.appendChild(div);
    })
  },
  error: function (error){
    console.log('error')
  },
})

home.html

<div id="my-Table"></div>

【问题讨论】:

  • 提供的代码 sn-p 不会触发给定的错误,myElement 不会出现在示例中。
  • 这段代码中没有myElement
  • id 为my-Table 的元素在您引用它时不存在。为什么不清楚,例子不够广泛。请添加一些代码,以便我们可以重现该问题。另外,不要使用 map 来迭代数组,forEach 存在于该任务中。
  • 我解决了。 &lt;div id="my-Table"&gt;&lt;/div&gt; 在我的 html 文件的底部。当我把它放得更高时,它开始工作。我真的是 Js 的新手,我不知道这到底是如何工作的,但现在一切都按照我的意愿显示。感谢您的帮助

标签: javascript dom


【解决方案1】:

IMO 您尝试在呈现之前访问该表。 试试

$(document).ready(function(){
  //Your code
});

【讨论】:

    猜你喜欢
    • 2011-11-15
    • 2021-11-09
    • 1970-01-01
    • 2013-12-03
    • 2019-02-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-13
    • 1970-01-01
    相关资源
    最近更新 更多