我正在尝试创建一个if / else语句来检查用户按下的按钮的文本。如果该按钮中没有文本,则会继续执行该功能,如果有预先存在的文本,则会发出警告,指出该按钮已存在。
基本上,用户单击一个按钮,代码会检查该按钮是否为空。但是,由于按钮的ID不断变化,我不知道如何告诉代码检查按下的按钮。我觉得使用'this'是解决这个问题的一部分,但我对JavaScript来说太新了,无法正确使用它。
这是我的整个JavaScript代码,除了包含注释的两行之外,它的工作正常。我试图使变量“inSquare”等于触发该函数的按钮中的文本。然后它继续检查变量的文本,但目前所做的只是失败了if并直接前往其他。
var turnNumber = 9;
var whoseTurn;
var inSquare;
function currentTurn(id) {
inSquare = this.innerHTML; /*This Line*/
if (inSquare === "") { /*This Line*/
if (whoseTurn === 0) {
id.innerHTML = "X";
turnNumber -= 1;
whoseTurn = turnNumber % 2;
} else {
id.innerHTML = "O";
turnNumber -= 1;
whoseTurn = turnNumber % 2;
}
} else {
window.alert("Something is already in that square!");
}
}
此外,这是HTML按钮的外观示例。 (总共有九个,但它们的格式都相同)。
<button id="topLeft" onclick="currentTurn(this)"></button>
<button id="topMid" onclick="currentTurn(this)"></button>
<button id="topRight" onclick="currentTurn(this)"></button>
答案 0 :(得分:1)
inSquare = this.innerHTML;
应为inSquare = id.innerHTML;
this
引用了窗口对象,但是你想引用你传递的元素,你提供的元素是函数的id
参数。