删除表中的特定行

时间:2013-07-23 18:57:34

标签: javascript

我正在尝试使用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>

3 个答案:

答案 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);
}