javascript - 将 innerText 设置为一个变量,但它不会改变
问题描述
我正在尝试使用按钮编写井字游戏,在我的计划中,我想将 button.innertext 存储为变量,以便我可以使用它来更方便地判断游戏结果。这是代码,为简单起见,我这里只放了一个按钮
const b1 = document.getElementById("b1");
const b = [b1];
let b1T = b1.innerText;
let xo = true;
show();
function show() {
for(let i = 0; i < 9; i++) {
b[i].addEventListener("click",go)
}
}
//decide x or o is displayed
function go(event) {
if(xo) {
event.target.innerText = "X";
event.target.disabled = true;
xo = false;
} else {
event.target.innerText = "O";
event.target.disabled = true;
xo = true;
}
}
function decide() {
if(b1T === "X"){
//do something
}
}
当我尝试在函数决定中编写部分时,我注意到 b1T 没有通过 console.log(b1T) 将它的值更改为“X”或“O”,我只是像我在 HTML 文件中设置的那样为空<button id = "b1"><button>
,但是当我输入了 console.log(b1.innerText) 它确实显示了它的 innerText。我是在错误的地方或其他地方设置了 bit 变量吗?
解决方案
decide
而是从函数内的按钮获取文本。当您按下按钮时,您的按钮正在更改其内部文本,因此您需要获取最新的文本(而不是最旧的文本)。
function decide() {
const b1 = document.getElementById("b1");
if(b1.innerText === "X"){
//do something
}
}
推荐阅读
- android - 以编程方式为 AnimatedVectorDrawable 和 Compat 设置持续时间和 startOffset
- javascript - 我不断收到 TypeError: Cannot read property 'find' of undefined
- python - 有没有办法使用模式匹配回调删除(修改)绘图破折号中的父元素?
- java - 与继承类不兼容的类型
- unity3d - 2个统一的维度滑块
- reactjs - 谷歌身份没有在反应中调用回调
- javascript - 选择下拉项时更改父元素的背景?
- c# - 使用消息中心将数据从一页传递到另一页
- javascript - 限制特定资源的选择
- android - 如何让 Android 在本地网络中使用 SSL 服务 API?