Jquery, Xóa / Làm trống tất cả nội dung của phần tử tbody?


77

Tôi nghĩ điều này sẽ khá đơn giản nhưng có vẻ như phương pháp rỗng không hoạt động để xóa một người mà tôi có. Tôi sẽ đánh giá cao nếu ai đó biết cách thích hợp để làm điều này, tôi chỉ muốn xóa mọi thứ có trong tbody. Cho đến nay tôi đang cố gắng:

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

HTML:

<table>
<tbody id="tbodyid">
<tr><td>something</td></tr>
</tbody>
</table>

LƯU Ý: Tôi đang cố gắng thực hiện việc này để tích hợp với một plugin do người khác viết mà tôi đang được sử dụng cho một dự án. Tôi đang tạo <tr><td>new data</td></tr>phía máy chủ mới và muốn chỉ có thể xóa các hàng trong bảng hiện có và thay thế chúng trên các lệnh gọi lại AJAX.


Bạn đã thử jsFiddle mà tôi vừa cung cấp chưa?
Marko

cảm ơn vì lời khuyên, tôi sẽ thử nó trong giây lát
Rick

Firefox ... bạn đã thử nó bằng gì? Tôi sử dụng Linux vì vậy tôi không có IE cài đặt, tôi cho rằng tôi có thể thử nó trong Chrome nhưng nó cần phải làm việc trong tất cả chúng anyways cho điều này để làm việc
Rick

Câu trả lời:


129

jQuery:

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

HTML:

<table>
    <tbody id="tbodyid">
        <tr>
            <td>something</td>
        </tr>
    </tbody>
</table>

Hoạt động cho tôi
http://jsfiddle.net/mbsh3/


Tôi nghĩ rằng chrome chịu đựng được một số thứ như thế này hơn Firefox có thể
Rick

Chắc chắn có gì đó sai khi bạn thêm một theadphần tử. Firefox 78.0.2 jsfiddle.net/geLxhwsu
jocull

Chức năng bổ sung đã sai. Cú pháp là $('<tr>')tạo một phần tử mới chứ không phải $('tr') ! Silly tôi jsfiddle.net/efmyp3s0
jocull

53

Bạn có thể đã tìm ra điều này rồi, nhưng đối với một người nào đó bị mắc kẹt với vấn đề này:

$("#tableId > tbody").html("");

10

Ví dụ cho Xóa tiêu đề bảng hoặc nội dung bảng bằng jquery

function removeTableHeader(){
  $('#myTableId thead').empty();
}

function removeTableBody(){
    $('#myTableId tbody').empty();
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id='myTableId'  border="1">
  <thead>
    <th>1st heading</th>
    <th>2nd heading</th>
    <th>3rd heading</th>
  </thead>  
  <tbody>
    <tr>
      <td>1st content</td>
      <td>1st content</td>
      <td>1st content</td>
    </tr>
    <tr>
      <td>2nd content</td>
      <td>2nd content</td>
      <td>2nd content</td>
    </tr>
    <tr>
      <td>3rd content</td>
      <td>3rd content</td>
      <td>3rd content</td>
    </tr>
  </tbody>
</table>
<br/>
<form>
  <input type='button' value='Remove Table Header' onclick='removeTableHeader()'/>
  <input type='button' value='Remove Table Body' onclick='removeTableBody()'/>
</form>


1
$ ('# myTableId tbody'). blank (); đây là những gì tôi đang tìm kiếm mà tôi không muốn đặt id cho phần tử tbody.
Div Tiwari

2
        <table id="table_id" class="table table-hover">
          <thead>
            <tr>
             ...
             ...
            </tr>
          </thead>
        </table>

sử dụng lệnh này để xóa nội dung của bảng đó: $("#table_id tbody").empty()

Tôi sử dụng jquery để tải động nội dung bảng và sử dụng lệnh này để xóa nội dung khi làm mới.

hy vọng điều này sẽ giúp bạn.


1

bạn có thể sử dụng remove()chức năng của ví dụ dưới đây và tạo lại bảng với đầu bảng và thân bảng

$("#table_id  thead").remove();
$("#table_id  tbody").remove();

0

Không sử dụng ID ( <tbody id="tbodyid">), đó là một cách tuyệt vời để đối phó với vấn đề này

$ ('# table1'). find ("tr: gt (0)"). remove ();

Tái bút: Để xóa số hàng cụ thể như ví dụ sau

$ ('# table1 tr'). eq (1) .remove ();

hoặc là

$ ('# tr: nth-child (2)'). remove ();

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.