错误“未捕获的语法错误:意外的输入结束”

时间:2019-07-20 02:17:30

标签: javascript html debugging

我不知道为什么会收到此错误。我想我已经关闭了所有括号。

我尝试用ID字母代替数字。

function check(x,y) {
    coor = "'" + x + y + "'";
    if (document.getElementById(coor).classList.contains("bomb")) {
        document.getElementById('WoL').innerHTML = "You lose.";
    }
}

HTML:

<div class = "grid-square" onclick = "check(1,8)" id = "18">?</div>

我希望输出使ID为“ WoL”的段落显示为“您输了”。如果您单击div,它就是炸弹。

2 个答案:

答案 0 :(得分:1)

function check(x,y) {
    coor = x.toString() + y.toString();
    if (document.getElementById(coor).classList.contains("bomb")) {
        document.getElementById('WoL').innerHTML = "You lose.";
    }
}

check(1,1);
<div id="WoL"></div>
<div class="bomb" id="11">A tile containing a bomb</div>

答案 1 :(得分:0)

您正在将字符串用引号引起来,因此,此刻,您实际上正在寻找ID为'18'而不是18的元素(因此给您null) 。相反,您可以将xy与空字符串连接起来,也可以使用String()方法将数字转换为字符串。

您还需要将bomb类添加到div中,以通过if语句检查。

最后,您需要确保定位正确的元素以更改document.getElementById('WoL')的HTML不是HTTML中的元素,因此不会执行任何操作。

请参见以下示例:

function check(x, y) {
  var coor = ''+x + y;
  var target = document.getElementById(coor); 
  if (target.classList.contains("bomb")) {
    target.textContent = "You lose.";
  }
}
<div class="grid-square bomb" onclick="check(1,8)" id="18">?</div>