JSFiddle - React, Tailwind, and code Playground
HTML
<!-- *** Div-обертка ради выравнивания по центру *** -->
<div id="wrapper">
<button id="toggle">Toggle color</button>
</div>
CSS
TABLE.field {
border-collapse: collapse;
margin: auto;
}
TABLE.field TD {
width: 28px;
box-sizing: border-box;
height: 28px;
border: 1px solid #b77;
}
TABLE.field TD.white {
background-color: white;
}
TABLE.field TD.black {
background-color: black;
}
BUTTON#toggle {
margin: 5px;
}
DIV#wrapper {
text-align: center;
}
JavaScript
//window.onload = function(){
function drawTable(width, height){
var table = document.createElement('table');
table.className = 'field';
for(var i=0; i < height; i++){
var tr = document.createElement('tr');
table.appendChild(tr);
for(var j=0; j < width; j++){
var td = document.createElement('td');
tr.appendChild(td);
td.className = 'white';
}
}
return table;
}
function toggleTableColor(button, table){
button.addEventListener('click', function(){
var tds = table.getElementsByTagName('td');
var length = tds.length;
for(var i=0; i < length; i++){
if(tds[i].className === 'black'){
tds[i].className = 'white';
}else{
tds[i].className = 'black';
}
}
});
}
function toggleCellColor(table){
table.addEventListener('click', function(event){
var target = event.target;
if(target.nodeName === 'TD'){
if(target.className === 'white'){
target.className = 'black';
}else{
target.className = 'white';
}
}
});
}
var toggle = document.getElementById('toggle');
var table = drawTable(12, 12);
document.getElementById('wrapper').insertBefore(table, toggle);
toggleTableColor(toggle, table);
toggleCellColor(table);
//};