javascript - 在棋盘上添加数字和字母

标签 javascript

我有一个用 JavaScript 创建的简单棋盘,我想在棋盘的两侧添加字母和数字,这样它看起来就像真正的棋盘。我尝试使用 for 循环添加带有字母和数字的元素,但条件似乎是错误的,因为它不起作用。这是我的 HTML 代码:

        let table = document.createElement("table");
    for (let i = 8; i > 0; i--) {
      let tr = document.createElement('tr');
      let number = document.createElement('td');
      number.className = 'number';
      number.innerHTML = i;
      tr.appendChild(number);
      for (let j = 0; j < 8; j++) {
        let td = document.createElement('td');
        if (i % 2 == j % 2) {
          td.className = "white";
        } else {
          td.className = "black";
        }
        tr.appendChild(td);
      }
      table.appendChild(tr);
    }
    document.body.appendChild(table);
* {
      margin: 0;
      padding: 0;
    }
    table {
      border-spacing: 0;
      margin: 20px 20px;
    }
    .black {
      width: 38px;
      height: 38px;
      background: black;
      border: 1px solid transparent;
    }
    .white {
      width: 38px;
      height: 38px;
      background: white;
      border: 1px solid black;
    }
    .number {
      padding-right: 10px;
      font-size: 18px;
      font-weight: bold;
    }

最佳答案

这就是我要做的(仍然需要对样式进行一些调整):

let table = document.createElement("table");
let letters = "ABCDEFGH";
for (let i = 0; i < 9; i++) {
  let tr = document.createElement('tr');
  for (let j = 0; j < 9; j++) {
    let td = document.createElement('td');
    if (j === 0) {
      td.textContent = 8-i || '';
      tr.appendChild(td);
      continue;
    }
    if (i === 8) {
      td.textContent = letters.charAt(j-1);
      td.classList.add('letter');
      tr.appendChild(td);
      continue;
    }
    if (i % 2 == j % 2) {
      td.className = "white";
    } else {
      td.className = "black";
    }
    tr.appendChild(td);
  }
  table.appendChild(tr);
}
document.body.appendChild(table);
* {
  margin: 0;
  padding: 0;
}

table {
  border-spacing: 0;
  border: 0;
  margin: 20px 20px;
}

tr:not(:last-child) td:not(:first-child) {
  border: 1px solid black;
}

.black {
  width: 40px;
  height: 40px;
  background: black;
}

.white {
  width: 40px;
  height: 40px;
  background: white;
}

.letter {
  text-align: center;
}

关于javascript - 在棋盘上添加数字和字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56733349/

相关文章:

knockout.js - 我们可以在一个页面中调用多个 ko.applyBindings 方法吗?

javascript - 比较两个字符串并返回它们之间的共同字符?

Controller 重定向后,Javascript 不会在 View 中执行

javascript - 滚动到无限滚动后出现的 div id

javascript - 检索 token /创建费用 - Stripe

javascript - 获取数字模数范围以使返回值位于最小范围值和最大范围值之间的正确方法是什么?

javascript - 在 JavaScript 中创建/修改图像

javascript - 从另一页导航到另一页

javascript - 使用 php 和 javascript 显示警告框

javascript - 根据高度固定标题自动调整内容部分的边距顶部