【问题标题】:How to select a certain cell from a table如何从表格中选择某个单元格
【发布时间】:2020-03-19 06:21:58
【问题描述】:

我有 14 个生成的单元格。

如何从 14 个单元格中选择一个特定的单元格并对其进行控制?我只希望一个单元格是唯一的,其余的就是它们在代码中的显示方式,通常。

var isCol = 0;
var board = [];
for (r = 0; r < 7; r++) {
  var line = [];
  for (c = 0; c < 7; c++) {
    line.push(r);
  }
  board.push(line);
}


function prs(c, r) {
  showTable(c, r);
  isCol = (isCol + 1) % 2;
}

function toColor(col, row, chosen_col, chosen_row) {
  var ret = false;
  switch (isCol) {
    case 0:
      if (row == chosen_row) {
        ret = true;
      }
      break;
    case 1:
      if (col == chosen_col) {
        ret = true;
      }
      break;
  }

  return ret;
}

function showTable(chosen_col, chosen_row) {
  var str = "";
  str += "<table border=1>";
  for (row = 0; row < 7; row++) {
    str += "<tr>";
    for (col = 0; col < 7; col++) {
      str += "<td onclick='prs(" + col + "," + row + ")'";
      if (toColor(col, row, chosen_col, chosen_row)) {
        str += " class='grn' ";
      }
      str += ">";
      str += RandomGenerator(50, 500);
      str += "</td>";
    }
    str += "</tr>";
  }
  str += "</table>";

  document.getElementById("ff").innerHTML = str;
}



function RandomGenerator(min, max) {
  return Math.floor(Math.random() * (max - min) + min);
}



showTable(-1);
td {
  border: 2px solid black;
  width: 10px;
  height: 10px;
}

td:hover {
  background-color: lightgreen;
}

.grn {
  background-color: green;
  color: white;
}
&lt;div id='ff'&gt;&lt;/div&gt;

【问题讨论】:

  • 为每个单元格添加一个id,然后使用document.getElementById("idYouWant"),您将拥有该单元格
  • 如果它是一个预先确定的单元格,这意味着您在用户访问页面之前就知道它是哪个单元格,那么最好使用 ID 或类。另一方面,如果所选单元格取决于其他因素,您可能需要查看 JavaScript 的 querySelector() 方法,以及可以与它一起使用的 list of CSS selectors
  • 欢迎来到 SO!不要担心写出完美的问题,我们只是要求您尽力而为,我们会尝试将其按摩成可以实现您目的的东西。正如“How to Ask”所建议的那样,如果您遇到困难,请让同行进行校对并帮助澄清。
  • 使用特定 ID(每个单元格一个)是有意义的。您可以通过这种方式轻松选择一个单元格,如果这是您的目标,也可以随机选择。

标签: javascript html css


【解决方案1】:

您可以为该行创建一个 ID

EG

<td id = "uniqueCell"> ... </td>

然后在您的 javascript 中,您可以执行以下操作。

var uniqueCell = document.getElementById('uniqueCell');

然后使用该变量来做你需要做的事情

【讨论】:

  • 哦,我明白了,这发生在我身上,但我认为由于一些愚蠢的原因它不会起作用,目前我正在尝试让输出给我当前每个单元格的 ID,我是没有收到任何错误,但是当我点击网站时,我得到白屏,任何提示将不胜感激
  • 抱歉耽搁了!您是指表格中与该单元格对应的 ID 号吗?
  • prnt.sc/r4tqoz 类似这样,每个单元格都有自己的 ID。