我正在尝试使用javascript从表中删除特定行。我现在尝试这样做的方法是通过单击按钮(删除按钮)然后删除行来检索当前行的ID。问题是我没有检索表中的当前行ID。如果有人可以帮助我在用户点击删除按钮时检索当前行的ID,我想我可以自己解决其余的问题。感谢
/*The Javascript*/
function delete_row() {
alert('id goes here');
//getElementById('row').innerHTML ='hello';
//id.deleteRow();
//var table = document.getElementByTagName('items_table');
//var row = table.rows[index];
//document.getElementByTagName('items_table').deleteRow(0);
}
/*The HTML of the Table*/
<table id="items_table">
<tr id="row_1">
<td>
<input type="text" value="item1"/>
</td>
<td>
<button onclick="delete_row();">X</button>
</td>
</tr>
/* Five rows in this table... */
<tr id="row_5">
<td>
<input type="text" value="item5"/>
</td>
<td>
<button onclick="delete_row();">X</button>
</td>
</tr>
</table>
答案 0 :(得分:5)
你可以提升树,直到找到一行:
function delete_row(btn) {
var tr = btn;
while(tr && tr.nodeName != "TR") tr = tr.parentNode;
if( !tr) throw new Error("Failed to find the row, was the function called correctly?");
tr.parentNode.removeChild(tr); // delete it
}
和
<button onClick="delete_row(this);">X</button>
this
很重要,因为它提供了对点击按钮的引用,因此我们可以找到它所在的行。
答案 1 :(得分:1)
检查此代码。它已经过验证,可以完美地完成您的工作。 :)
<script>
function delete_row(me) {
alert(me.parentNode.parentNode.id);
}
</script>
<table id="items_table">
<tr id="row_1">
<td>
<input type="text" value="item1"/>
</td>
<td>
<button onclick="delete_row(this);">X</button>
</td>
</tr>
<tr id="row_5">
<td>
<input type="text" value="item5"/>
</td>
<td>
<button onclick="delete_row(this);">X</button>
</td>
</tr>
</table>
答案 2 :(得分:0)
您不能分别在每行中将<button onclick="delete_row();">X</button>
更改为<button onclick="delete_row('row_5');">X</button>
吗?
您的处理程序如下:
function delete_row(theID) {
alert(theID);
}