document.queryselector returns 空值

document.queryselector returns null value

我目前正在使用 HTML、CSS 和 Vanilla JS 构建一个井字游戏,我有一个 ID 为 'mode' 和 class 的设置按钮'settings-button' 在玩家对玩家和玩家对 cpu 之间切换(见下面的代码)。

当我 运行 document.querySelector 在按钮的 class 上时,它 returns 一个空值,这反过来导致 eventlistener 行引发错误(Uncaught TypeError : 无法读取 属性 'addEventListener' of null).

我尝试过使用 document.getElementById 并将我的所有代码放入 window.onload 块中,这两种文档方法,但我在所有情况下都遇到了同样的问题。起初我认为这可能是 wifi 连接问题,因为我正在为这个项目工作 repl.it,但我检查了其他具有类似代码的项目,它们似乎都工作正常。

我应该怎么做才能解决这个问题?

编辑:我也尝试过使用 document.querySelectorAll,它 returns 是一个空节点列表。

const modeButton = document.querySelector('settings-button');

let cpu = false;

function switchMode() {
  cpu = !cpu;
  this.textContent = cpu ? modeText[1] : modeText[0];
}

modeButton.addEventListener('click',switchMode);
<button id="mode" class="settings-button">Player vs Player</button>

您正在使用 settings-button 作为 class 而不是 .settings-button在 querySelector 方法中的 class 名称前添加 (.)

const modeButton = document.querySelector('.settings-button');