用JS实现一个效果
点击 “变色” 按钮后,棋盘内相邻的格子颜色互换,红色变成黑色,黑色变成红色

但是我设置的代码点击 '变色' 按钮后,却变成了这种隔行变色的效果



我是用createElement属性创造了400个div格子元素放到oBox框子元素中的
本人初学JS,实在想不明白。请问您们知道该怎么做这种效果吗?
用JS实现一个效果
点击 “变色” 按钮后,棋盘内相邻的格子颜色互换,红色变成黑色,黑色变成红色




修改后:
你的代码中,点击按钮后会根据index的值来判断当前要变成哪种颜色的棋盘。如果index是偶数,就将偶数索引位置的格子变成红色,奇数索引位置的格子变成黑色;如果index是奇数,就将偶数索引位置的格子变成黑色,奇数索引位置的格子变成红色。
修改后的代码段中,点击按钮后会遍历所有的格子,如果格子的背景颜色是红色,则将其变成黑色,反之如果是黑色,则将其变成红色。该代码段没有使用index来控制具体变换的颜色,而是根据格子原本的颜色来进行切换。


<!DOCTYPE html>
<html>
<head>
<title>棋盘变色</title>
<style type="text/css">
body {
margin: 0;
padding: 0;
}
#box {
width: 400px;
height: 400px;
position: absolute;
left: 50%;
top: 50%;
margin-left: -200px;
margin-top: -200px;
border: 1px solid black;
}
#box > div {
width: 20px;
height: 20px;
float: left;
}
#Btn {
width: 80px;
height: 30px;
font-size: 15px;
letter-spacing: 1px;
position: absolute;
top: 40%;
left: 30%;
}
</style>
</head>
<body>
<div id="box"></div>
<input type="button" name="colorBtn" id="Btn" value="变色">
<script type="text/javascript">
var oBox = document.getElementById('box');
var index = 0;
for (var i = 0; i < 400; i++) {
var oDiv = document.createElement('div');
oBox.appendChild(oDiv);
if (Math.floor(i / 20) % 2 == 0) {
if (i % 2 == 0) {
oDiv.style.background = 'red';
} else {
oDiv.style.background = 'black';
}
} else {
if (i % 2 == 0) {
oDiv.style.background = 'black';
} else {
oDiv.style.background = 'red';
}
}
}
var colorBtn = document.getElementById("Btn");
colorBtn.onclick = function() {
index++;
var allDiv = oBox.getElementsByTagName('div');
for (var a = 0; a < allDiv.length; a++) {
if (allDiv[a].style.background == 'red') {
allDiv[a].style.background = 'black';
} else {
allDiv[a].style.background = 'red';
}
}
};
</script>
</body>
</html>