我陷入了一個奇怪的境地。。。
// ticketList refers to an html table id
console.log("ticketList.rows.length before: " + ticketList.rows.length);
for (i= 1; i < ticketList.rows.length; i++) {
ticketList.rows[i].remove();
console.log(`ticket ${i - 1} removed`);
}
// some more code which works properly
console.log("ticketList.rows.length after: " + ticketList.rows.length);
現在這是控制臺輸出:
ticketList.rows.length before: 13
ticket 0 removed
ticket 1 removed
ticket 2 removed
ticket 3 removed
ticket 4 removed
ticket 5 removed
ticketList.rows.length after: 19
初始值13是正確的。為什么它在6次迭代后停止,而不是像預期的那樣刪除12個元素?
我嘗試在for-loop中對停止值進行硬編碼,結果出現以下錯誤:
無法讀取未定義的屬性(讀取“remove”)
如果刪除一行,索引將關閉。最簡單的解決方案是向后迭代。
還要注意,這是刪除所有行,如果您想保留第一行,只需使用
i > 0
;看到拼接沒有按我預期的方式工作