首页 > 解决方案 > 我的 javascript 有:Uncaught TypeError: Cannot read property of null show on my console

问题描述

我想用 setTimeout 删除我的弹出消息模式,但控制台显示:

未捕获的类型错误:无法读取 null 的属性“删除”

我的代码:

function popupmodel(msg2) {
  const mymodel1 = document.createElement('div');
  const mypopbox2 = document.querySelector(".bodybg");
  mymodel1.classList = `mypopbox`;
  mymodel1.innerHTML = `
    <div class="row mt-5 alert alert-warning alert-dismissible fade show" role="alert">
        <p>${msg2}</p>
        <button id="gameClose" type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
  `;
  mypopbox2.appendChild(mymodel1);
  const closebut1 = document.querySelector('.mypopbox');
  document.getElementById('gameClose').addEventListener('click', function() {
    closebut1.remove();
  });
  setTimeout(function() {
    document.querySelector('.mypopbox').remove();
  }, 3000);
};

标签: javascript

解决方案


您的代码已经可以工作了!

function popupmodel(msg2) {
  const mymodel1 = document.createElement('div');
  const mypopbox2 = document.querySelector(".bodybg");
  mymodel1.classList = `mypopbox`;
  mymodel1.innerHTML = `
    <div class="row mt-5 alert alert-warning alert-dismissible fade show" role="alert">
        <p>${msg2}</p>
        <button id="gameClose" type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
  `;
  mypopbox2.appendChild(mymodel1);
  const closebut1 = document.querySelector('.mypopbox');
  document.getElementById('gameClose').addEventListener('click', function() {
    closebut1.remove();
  });
  setTimeout(function() {
    document.querySelector('.mypopbox').remove();
  }, 3000);
};

popupmodel("hello");
<div class="bodybg">

</div>

但是,对于您提到的错误应该是由下面的行引起的,这意味着它无法找到类“mypopbox”的任何内容。如果您仍然遇到问题,请在jsfiddle中复制并分享。

document.querySelector('.mypopbox').remove();

推荐阅读