2016-03-08 506 views
0

我在JavaScript中創建了一個函數,每分鐘自動向表格中添加一行。它工作正常,除了我想刪除表的第二行(因爲第一行用於標題),如果有超過5行。我想這樣的代碼:用JavaScript刪除HTML表格tr

if(table.getElementsByTagName("tr").length > 5){ 
    table.getElementsByTagName("tr")[1].outerHTML = ""; 
} 

的問題是,執行第二線的時候,我得到一個錯誤消息說「未知的執行錯誤」。它爲什麼這樣做?有什麼辦法可以解決它嗎?

萬一重要,我使用HTA。

+1

對我來說工作很好(雖然第二行應該是索引'1')。什麼瀏覽器給這個錯誤?什麼是HTA?您應該提供該問題的完整工作演示。 – 2016-03-08 15:56:24

+0

此外,你的標題應該真的在''元素中,其餘的在''中。然後,你可以簡單地執行'table.tBodies [0] .rows [0]'來獲得你想要的行。 – 2016-03-08 15:59:21

+0

要刪除表中的第二行,可以使用'table.deleteRow(1);' –

回答

1

您可以通過

var rowCount = document.getElementById("myTable").rows.length; 

獲得的行數要刪除(在Codepen查看)

if(rowCount > 5) { 
    document.getElementById("myTable").deleteRow(1); //deletes second row 
} 
1

var table = document.getElementsByTagName('table')[0]; 
 
if (table.rows.length > 5) { 
 
    table.deleteRow(1); 
 
}
<table> 
 
    <tr><td>1</td></tr> 
 
    <tr><td>2</td></tr> 
 
    <tr><td>3</td></tr> 
 
    <tr><td>4</td></tr> 
 
    <tr><td>5</td></tr> 
 
    <tr><td>6</td></tr> 
 
</table>

  • table.rows返回表中所有<tr>元素的集合。 length是它的屬性,返回這些元素的計數。請參閱W3Schools上的Table rows Collection
  • deleteRow方法刪除表中指定索引處的行。請參閱W3Schools上的Table deleteRow() Method

您可以在W3Schools網站閱讀HTML DOM Table Object中關於表格對象的更多信息。