jQuery:点击按钮删除最近的内容需要什么

问题描述 投票:1回答:4

我有一个HTML表,其中包含一个TH行和几个动态添加的TR。每个TR在最后一列中都有一个按钮。

我需要什么才能通过点击按钮将最近的TR从表中删除?我尝试使用$(this).closest.remove(),但这没有用,所以我想我需要在这里添加ID或其他东西。

基本示例表如下所示:

<table class='tableClass'>
    <tbody>
        <th>
            <td>Text</td><td>Text</td><td>Text</td>
        </th>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
        <tr>
            <td>Text</td><td>Text</td><td><button type='button' class='btnClass'>Delete</button></td>
        </tr>
    </tbody>
</table>
jquery dynamic html-table closest
4个回答
2
投票

你需要给closest函数一个选择器。试试这个:

$('.btnClass').click(function() {
    $(this).closest('tr').remove();
});

此外,您的HTML无效,因为th应该是tr的孩子:

<table class='tableClass'>
    <tbody>
        <tr>
            <th>Text</th>
            <th>Text</th>
            <th>Text</th>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
        <tr>
            <td>Text</td>
            <td>Text</td>
            <td>
                <button type='button' class='btnClass'>Delete</button>
            </td>
        </tr>
    </tbody>
</table>

Example fiddle


1
投票

您可以使用.closest( selector )正确地执行此操作:

$(this).closest('tr').remove();

实际上在你的代码中:

$(this).closest.remove()
            ___^___

你缺少开括号和右括号()和选择器tr


1
投票

http://jsfiddle.net/cpvh9/

$(".btnClass").click(function(){
        $(this).parents('tr').remove();
    });

1
投票

从您的HTML代码看起来您​​想删除父TR,试试这个

$(".btnClass").click(function(){
    $(this).parents("tr:first").remove();
});
© www.soinside.com 2019 - 2024. All rights reserved.