清除表jQuery


103

我有一个HTML表填充了许多行。

如何从表中删除所有行?

Answers:


162

使用.remove()

$("#yourtableid tr").remove();

如果您想保留数据以备将来使用,甚至可以将其删除,则可以使用.detach()

$("#yourtableid tr").detach();

如果行是表的子级,则可以使用子级选择器代替子级选择器,例如

$("#yourtableid > tr").remove();

16
最后一点要小心:大多数浏览器在tbody元素周围添加一个隐式tr元素。
尼克

96

如果要清除数据但保留标题:

$('#myTableId tbody').empty();

该表必须以这种方式格式化:

<table id="myTableId">
    <thead>
        <tr>
            <th>header1</th><th>header2</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>data1</td><td>data2</td>
        </tr>
    </tbody>
</table>

这是可行的,但是这消除了其中包含所有“ tr”的“体”本身。
哈坎·菲斯特克(HakanFıstık),2016年

您说得对,@ HakamFostok。我已将答案编辑为使用empty()代替
HoffZ

41

比单独删除每个组件要快一些:

$('#myTable').empty()

从技术上讲,这将删除theadtfoottbody元素了。



12

核选择:

$("#yourtableid").html("");

销毁内的所有内容#yourtableid。注意选择器,因为它会破坏您通过的选择器中的所有 html!


2
+1表示核:)。但应该明白,是不是“最好”的风格:)我不会推荐它一般
佛祖

大声笑。同意 过去,我曾使用这种特殊方法来加快速度并解决困难的情况。它在JQuery应用程序领域中有一定的用途。
KevinDeus 2014年

11
$("#employeeTable td").parent().remove();

这将删除所有trtd作为的孩子。即除标题外的所有行都将被删除。


这是唯一对我有用的。删除标题以外的所有内容...
Elbert Villarreal,

6

这将删除属于主体的所有行,从而使标题和主体保持完整:

$("#tableLoanInfos tbody tr").remove();

1
<table id="myTable" class="table" cellspacing="0" width="100%">
    <thead>
        <tr>
            <th>Header 1</th>
            <th>Header 2</th>
            <th>Header 3</th>
        </tr>
    </thead>
    <tbody id="tblBody">

    </tbody>
</table>

并删除:

$("#tblBody").empty();


0

有一个这样的表(带有标题和主体)

<table id="myTableId">
    <thead>
    </thead>
    <tbody>
   </tbody>
</table>

删除每一个在#tableId中有一个称为tbody的父级的tr

$('#tableId tbody > tr').remove();

如果要添加到表中,则相反

$('#tableId tbody').append("<tr><td></td>....</tr>");
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.