In the example code below, an X or an O is going to be placed on a mouse click. I want to change this to an image. positive.png for the X and negative.png for the O How can I modify this?
var tabelKolommen = document.querySelectorAll('td')
var aanDeBeurt = 1;
tabelKolommen.forEach(function(td) {
td.addEventListener('click', doeIetsMetKolom);
})
function doeIetsMetKolom(event) {
console.log(event.target);
if(event.target.textContent == "X" || event.target.textContent == "O" ) {
console.log('al bezet!');
} else {
if(aanDeBeurt == 1) {
event.target.textContent = "X";
aanDeBeurt = 2;
} else {
event.target.textContent = "O";
aanDeBeurt = 1;
}
}
}
You can either toggle a class on the element, or you can assign a data attribute to the cell. I would go with assigning a data attribute, because this separates the JavaScript from the presentation (CSS) layer.
const players = ['O', 'X']; let turn = 0; const getCurrentPlayer = () => players[turn % players.length]; const onCellClick = ({ target }) => { if (!target.dataset.player) { target.dataset.player = getCurrentPlayer(); turn++; } } document.querySelectorAll('.tic-tac-toe .cell').forEach(cell => cell.addEventListener('click', onCellClick));
html, body { width: 100%; height: 100%; margin: 0; padding; 0; } body { display: flex; justify-content: center; align-items: center; } .tic-tac-toe { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; } .cell { width: 32px; height: 32px; border: thin solid grey; cursor: pointer; } .cell[data-player="O"] { background-image: url('https://via.placeholder.com/32/DFD/000?text=O'); cursor: not-allowed; } .cell[data-player="X"] { background-image: url('https://via.placeholder.com/32/FDD/000?text=X'); cursor: not-allowed; }
<div class="tic-tac-toe"> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> <div class="cell"></div> </div>
var oImage = document.createElement('img');
oImage.src = '/link-to-O-image.png';
var xImage = document.createElement('img');
xImage.src = '/link-to-X-image.png';
var tabelKolommen = document.querySelectorAll('td')
var aanDeBeurt = 1;
tabelKolommen.forEach(function(td) {
td.addEventListener('click', doeIetsMetKolom);
})
function doeIetsMetKolom(event) {
console.log(event.target);
if(event.target.textContent == "X" || event.target.textContent == "O" ) {
console.log('al bezet!');
} else {
if(aanDeBeurt == 1) {
event.target.append(xImage);
aanDeBeurt = 2;
} else {
event.target.append(oImage);
aanDeBeurt = 1;
}
}
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.