我在我的頁面上檢索 2 組資料 (json):1:倉庫 2:專案。首先,在從我的視圖中獲得 Ajax 搜索回應后,我不想動態創建表的 TD。
我想為倉庫 JSON 中可用的所有倉庫創建所有 TD,如果產品在此倉庫 PK 上有庫存,同時我填充 QTY
tableBody.innerHTML = `
[...]
<td>${item.fournisseur__nom}</td>`;
JSON.parse(warehouses).forEach((wh) => {
tableBody.innerHTML = `
<td>
`;
for (let i = 0; i < item.sststock.length; i ) {
if (item.sststock[i].sst_id == wh.pk) {
tableBody.innerHTML = item.sststock[i].qty;
}
};
tableBody.innerHTML = `
</td>
`;
});
tableBody.innerHTML = `
<td>${item.qty}</td>
[...]
唉,結果如下:

我注意到,即使我洗掉了“for i”回圈,a<tr></tr>也會插入到 2 之間<td>,當我將回圈放回時,在 each 之間<td>,a<tr>會升高。關于這種行為的原因的任何想法?
uj5u.com熱心網友回復:
盡管之前進行了多次搜索,但我還沒有聽說過JS 中的insertRow()和insertCell()。
即使我仍然不明白為什么innerHTML <td>不起作用,我用這兩個函式更改了我的代碼,結果還可以。
const tableBody = document.querySelector('.table-body');
var newRow = tableBody.insertRow(-1); // -1 = at the end of the table
var newCell = newRow.insertCell(0); // 0 = at the 0 index
newCell.innerHTML = item.etat;
[...]
JSON.parse(warehouses).forEach((wh) => {
var newCell = newRow.insertCell(-1);
for (let i = 0; i < item.sststock.length; i ) {
if (item.sststock[i].warehouse_id == wh.pk) {
newCell.innerHTML = item.sststock[i].qty;
}
};
});
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/444232.html
