javascript - 功能没有做简单的控制台日志作为测试,不知道为什么
问题描述
昨天我也有同样的问题。然而它被否决了,因为我没有提供足够的信息,无法及时编辑。今天我再次尝试并挑出我想要做的事情,现在我可以给出完整的代码示例,因为它仍然有同样的问题。
所以这一次,这是我的 HTML:
<!DOCTYPE html>
<html>
<head>
<title>Tic Tac Toe</title>
<meta charset="UTF-8">
<link href="styles/styleAllOverAgain.css" rel="stylesheet" type="text/css">
</head>
<body>
<h1>Tic Tac Toe!</h1>
<button id="start/restart">Start/Restart</button>
<br>
<br>
<button id="opponentToggle">Against Computer</button>
<br>
<br>
<form id="nameSubmit1">
<input id="input1" type="text" placeholder="Player 1 name:">
<button id="submit1" type="submit">submit</button>
</form>
<br>
<input id="input2" type="text" placeholder="Player 2 name:">
<button id="submit2" type="submit">submit</button>
<br>
<br>
<button id="play">Play!</button>
<br>
<br>
<div id="gameplayButtons">
<button id="1">1</button>
<button id="2">2</button>
<button id="3">3</button>
<button id="4">4</button>
<button id="5">5</button>
<button id="6">6</button>
<button id="7">7</button>
<button id="8">8</button>
<button id="9">9</button>
</div>
<script src="javascript/myscriptAllOverAgain.js"></script>
</body>
</html>
CSS 在这一点上真的很小:
#gameplayButtons {
display: grid;
grid-template-columns: 75px 75px 75px;
grid-template-rows: 75px 75px 75px;
}
还有我的 javascript:
function myImmediateFunctionSetUp () {
// 'use strict';
let gameBoard = ["", "", "", "", "", "", "", "", ""];
let playerName1 = "";
let playerName2 = "";
let entered1 = false;
let entered2 = false;
const getPlayerName1 = document.querySelector("#submit1");
getPlayerName1.addEventListener('click', (e) => {
entered1 = true;
// const inputText = document.querySelector("input1");
// playerName1 = inputText.nodeValue;
console.log("hello");
console.log(entered1);
// inputText.setAttribute("placeholder", playerName1);
})
}
myImmediateFunctionSetUp();
我试图通过在提交后将其存储在占位符中来“记住”该名称。没有那样做。然后我删除了所有内容以查看它是否会执行 console.logs。它也没有这样做。我真的不知道是什么原因造成的。
如果有人昨天看到我的帖子,那是一个模块模式。今天我尝试删除该部分并尝试正常的“命名”功能,但它也不起作用。所以我尽可能地缩小了范围,删除了所有其他事件监听器,只挑出了这个。而且我真的不知道该怎么办。
解决方案
document.querySelector("submit1")
不会返回任何元素。submit1
不是 的有效选择器.querySelector(...)
。
使用document.querySelector("#submit1")
or document.getElementById("submit1")
,您的代码将正常工作
推荐阅读
- sql - 带有 LEFT JOIN、GROUP BY 和 HAVING 的 SQL UPDATE 语句?
- flutter - 尝试在 Flutter FutureBuilder 中构建 ListView 时出错
- swift - 如何在 SwiftUI 中交换 TabView 和 BottomToolbar
- sql - 将时间戳转换为 varchar
- xamarin.forms - Xamarin.Forms 共享图像和文本
- java - 如何从Java列表中打印随机名称?
- android - E/RecyclerView:没有附加适配器;跳过布局如何解决?
- html - 如何使我的列表项内联显示?
- this - In D365/X++, why is '(' invalid when I use "this" to indicate the variable lives on the instance?
- r - 如何在 R 中模拟这些标准