2017-05-29 121 views
0

我有atable在哪裏刪除除具有特定id的某些行以外的所有行。如何通過除特定ID以外的id刪除表格行

我做了follwoing:

for(var y=0; y<table.rows.length; y++) 
    { 
    console.log("deleting row "+ y); 
    var initialRow=document.getElementById("initial-row"); 
    if (table.rows[y].id!=initialRow) 
    { 
     table.deleteRow(y); 
     console.log("row deleted"); 
    } 
else continue; 
} 

但這並沒有工作。有什麼建議麼? 編輯: 下面是HTML表:

<table align='center' cellspacing=1 cellpadding=1 id="data-table" border=1> 
<tr id="head"> 
<th>Name</th> 
<th>Type</th> 
<th>Action</th> 
</tr> 

<tr id="initial-row"> 
<td><input type="text" id="text-field"></td> 

<td> 
    <select name="levels-list" id="levels-list"> 
    <option value="A" id="option-1">A</option> 
    <option value="B" id="option-2">B</option> 
    <option value="C" id="option-3">C</option> 
    </select> 
</td> 

<td><input type="button" class="add" id="add-button" value="Add"></td> 
</tr> 

</table> 

我加入行動態詮釋的JavaScript。然後,我需要刪除一行,並刷新整個表,因爲添加的行ID是動態的。爲了刷新表格,我想刪除除了標題和最初在HTML頁面中的起始行之外的所有舊行。無法正確執行此操作。

+0

您正在比較元素id字符串與元素對象。永遠不會平等。 – charlietfl

+0

var initialRow = document.getElementById('')'這不會返回該行的'id',它會給出整個元素,以便像'table'那樣使'id'訪問它的屬性.rows''initialRow.id' – Lixus

+0

var initialRow = document.getElementById(「initial-row」); if(table.rows [y] .id!= initialRow) 我不明白爲什麼要比較「table.rows [y] .id」和initialRow as initialRow將會是元素的對象,如果你的DOM包含具有「初始行」id的元素 而id是字符串 – SPidey

回答

2

您正在比較元素id(字符串)與DOM元素對象。您可以刪除getElementById調用,並簡單地執行:

if (table.rows[y].id!="initial-row")