我不知道为什么会收到此错误。我想我已经关闭了所有括号。
我尝试用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,它就是炸弹。
答案 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
) 。相反,您可以将x
和y
与空字符串连接起来,也可以使用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>