在表行上进行循环

时间:2018-11-13 13:31:42

标签: javascript

该代码不应在下一页(http://plnkr.co/edit/lyq6MUBtY4jHg4l1IPlm?p=preview

   let table = document.body.firstElementChild;

    for (let i = 0; i < table.rows.length; i++) {
      let row = table.rows[i];
      row.cells[i].style.backgroundColor = 'red';

将所有单元格涂成红色?如何确保只有选定的?

2 个答案:

答案 0 :(得分:1)

您可以使用CSS选择器来收集所有td元素

Working example on jsfiddle

const tds = document.body.firstElementChild.querySelectorAll('td');

for (let i = i; i < tds.length; i++) {
    tds.style.backgroundColor = 'red';
}

如果要确保只有所选内容,可以使用数据属性为它们分配一个唯一的ID,然后创建一个数据结构,以ID跟踪每个单元格的状态

答案 1 :(得分:-1)

您忘记了单元格也是数组:

let table = document.body.firstElementChild;

for (let i = 0; i < table.rows.length; i++) {
   let row = table.rows[i];
   for (let j = 0; j < row.cells.length; j++) {
      row.cells[j].style.backgroundColor = 'red';
   }
 }

您所做的是使用行索引选择单元格索引。