簡體   English   中英

如何在 html 表中循環並更改 javascript 中每個單元格的值

[英]how to loop in html table and change the value of each cell in javascript

我的輸入表已經由用戶填寫。 現在我要做的是在我的表上循環並使用我的 JavaScript 更改每個單元格td的值。 我的一些單元格有輸入字段,而其他單元格只有td標簽之間的文本。 我在表格上正確循環,並使用表達式table.rows[R].cells[C].children[0].value = value; 但我不知道如何更改沒有輸入字段的 td 標簽之間只有文本的單元格! 試圖寫table.rows[R].cells[C].value = value但它不起作用:我的表格代碼:

var table = document.getElementById('table');
var rowCount = table.rows.length;
var colCount = document.getElementById('table').rows[0].cells.length;
for (var r = 1; r < rowCount; r++) {
    for (var c = 1; c < colCount - 1; c++) {
        table.rows[r].cells[c].children[0].value = somevalue; // this works with cells that has input field but not with cells that has not 
        table.rows[r].cells[c] value = somevalue; // tried this line but not working
    }
}

根據您的解釋,我了解您要修改所有 td 標記(輸入子項或文本子項)的值。 在您的代碼段中,要實現這一目標有兩個問題:

  1. “列循環” (c) 的起始索引為 1,然后循環直到該索引小於所有列的長度。 這意味着您將遍歷除第一列和最后一列之外的所有列。 也許這就是你的意圖。
  2. 最后一個 for 循環的最后一行有語法錯誤。

對於您的“主要”問題,即使某些單元格包含輸入元素和某些文本節點,您似乎也將單元格視為相同。 您可以通過添加一些邏輯來簡單地解決這個問題,並根據單元格是否有子級(輸入字段)或沒有(文本節點)來分別處理它。 對於文本節點,我們只需修改 innerHTML。

如果我理解正確,這是一個應該為您完成工作的片段:

var table = document.getElementById("table");
var rowCount = table.rows.length;
var colCount = document.getElementById("table").rows[0].cells.length;

var somevalue = "modified value";

for (var r = 1; r < rowCount; r++) {
  
  for (var c = 0; c < colCount; c++) {
    const cell = table.rows[r].cells[c];

    if (cell.children.length) {
      cell.children[0].value = somevalue;
    } else {
      cell.innerHTML = somevalue;
    }

  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM