通过输入更改ID将文本从HTML转换为Javascript作为函数

时间:2014-05-19 15:59:33

标签: javascript html function button if-statement

我正在尝试创建一个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>

1 个答案:

答案 0 :(得分:1)

inSquare = this.innerHTML;应为inSquare = id.innerHTML;

函数中的

this引用了窗口对象,但是你想引用你传递的元素,你提供的元素是函数的id参数。