2017-05-29 58 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")