我正在尝试制作一个井字游戏,但是当我将背景图像更改为X或O的图像时出现问题。我正在使用事件监听器单击
这是我的函数,根据点击的单元格更改单元格中的图像。
当我点击想要放置X或O的单元格时,它不能工作,并显示了此帖子标题中的错误消息。我想知道如何继续更改单元格中的图像及其新ID。
<td>
单元格以获取其id。
这是创建带有所有单元格标识和包含不同id的所有单元格中包含图像的表格的函数:
function BuildTable(rows, cols) {
BuildDivJeu();
var table = document.createElement("TABLE");
table.id = "Table";
document.getElementById("Jeu").appendChild(table);
for (var row = 1; row <= rows; row++) {
var rangee = document.createElement("TR");
rangee.id = row;
document.getElementById("Table").appendChild(rangee);
for (var col = 1; col <= cols; col++) {
var cellule = document.createElement("TD");
var img = document.createElement("IMG");
cellule.id = "R" + row + "C" + col;
img.setAttribute("id", cellule.id);
img.setAttribute("src", "Images/VN.png");
img.setAttribute("alt", "VN")
cellule.appendChild(img);
document.getElementById(row).appendChild(cellule);
cellule.addEventListener("click", Jouer);
}
}
}
这是我的函数,根据点击的单元格更改单元格中的图像。
function Jouer() {
var x = event.currentTarget
var id = x.id;
var imgx = document.getElementById(id);
var imgo = document.getElementById(id);
if (turn % 2 == 0) {
if (x.alt != "VN" | x.alt != "ON") {
if (imgx.hasAttribute("alt")) {
imgx.setAttribute("src", "Images/XN.png");
imgx.setAttribute("id", "XN");
imgx.setAttribute("alt", "XN");
}
x.appendChild(imgx);
}
turn++;
} else {
if (x.id != "VN" | x.id != "XN") {
if (imgo.hasAttribute("alt")) {
imgo.setAttribute("src", "Images/ON.png");
imgo.setAttribute("id", "ON");
imgo.setAttribute("alt", "ON");
}
x.appendChild(imgo);
}
turn++;
}
}
当我点击想要放置X或O的单元格时,它不能工作,并显示了此帖子标题中的错误消息。我想知道如何继续更改单元格中的图像及其新ID。
.src
属性来更改图像。你不需要使用appendChild()
。 - jfriend00