Làm cách nào để xóa tất cả nội dung <div> s 'bên trong cha mẹ <div>?


219

Tôi có một div <div id="masterdiv">có vài con <div>.

Thí dụ:

<div id="masterdiv">
  <div id="childdiv1" />
  <div id="childdiv2" />
  <div id="childdiv3" />
</div>

Làm cách nào để xóa nội dung của tất cả các con <div>bên trong bản gốc <div>bằng jQuery?


6
Tôi đã gắn thẻ lại câu hỏi của bạn vì nó không liên quan đến Asp.net MVC (như bạn đã gắn thẻ) theo bất kỳ hình dạng hoặc hình thức nào.
Robert Koritnik

Xem xét chấp nhận một câu trả lời sử dụng .empty(). Đó là cách hiệu quả nhất để làm điều đó
Kolob Canyon

Câu trả lời:


270
jQuery('#masterdiv div').html('');

Chúng ta có thể sao chép html và thao tác trên đó không? như var tmp = $ ('<div>'). append ($ ('# masterdiv'). clone ()). remove (). html (); và nhận divs bên trong #masterdiv của tmp và xóa nội dung và trả lại
Prasad

118
Sử dụng .empty()sẽ là một lựa chọn tốt hơn vì không có phân tích chuỗi. Nó hoạt động trực tiếp trên mô hình đối tượng DOM.
Drew Noakes

7
empty()cũng xóa tất cả nội dung được tạo bằng jQuery.
MikkoP

445

empty()Hàm của jQuery thực hiện điều đó:

$('#masterdiv').empty();

dọn dẹp chủ div.

$('#masterdiv div').empty();

xóa tất cả các con div, nhưng giữ nguyên chủ.


8
api.jquery.com/empty là đúng nhưng tôi không biết tại sao câu trả lời của Quentin được chấp nhận :)
Nuri YILMAZ

5
Điều này xóa nhiều hơn những gì được yêu cầu trong câu hỏi ban đầu - bạn nên sử dụng bộ chọn cụ thể hơn .
vẽ Noakes

4
Wow, cảm ơn bạn Drew đã chỉ ra điều này 1,5 năm sau :) Đã sửa.
Emil Ivanov

20

Sử dụng cú pháp bộ chọn CSS của jQuery để chọn tất cả các divphần tử bên trong phần tử có id masterdiv. Sau đó gọi empty()để xóa nội dung.

$('#masterdiv div').empty();

Việc sử dụng text('')hoặc html('')sẽ khiến một số phân tích chuỗi diễn ra, thường là một ý tưởng tồi khi làm việc với DOM. Hãy thử và sử dụng các phương thức thao tác DOM không liên quan đến biểu diễn chuỗi của các đối tượng DOM bất cứ khi nào có thể.


14

jQuery khuyên bạn nên sử dụng ".empty ()", ". remove ()", ". Detach ()"

nếu bạn cần xóa tất cả phần tử trong phần tử, hãy sử dụng mã này:

$('#target_id').empty();

nếu bạn cần xóa tất cả phần tử, hãy sử dụng mã này:

$('#target_id').remove();

i và nhóm jQuery không khuyến nghị sử dụng SET FUNCTION như .html () .attr () .text (), đó là gì? đó là nếu bạn muốn thiết lập bất cứ điều gì bạn cần

ref: https://learn.jquery.com/USE-jquery-core/manipulation-elements/


12

Nếu tất cả các div bên trong masterdiv cần phải bị xóa, thì đây là.

$('#masterdiv div').html('');

khác, bạn cần lặp lại trên tất cả các con div của #masterdiv và kiểm tra xem id có bắt đầu bằng childdiv không.

$('#masterdiv div').each(
    function(element){
        if(element.attr('id').substr(0, 8) == "childdiv")
        {
            element.html('');
        }
    }
 );

11

Cách tốt hơn là:

 $( ".masterdiv" ).empty();

1
Điều này chọn tất cả các thành phần với lớp "masterdiv", không phải id "masterdiv", theo các câu hỏi - chỉ là một ghi chú.
Dave


6
$("#masterdiv > *").text("")

hoặc là

$("#masterdiv").children().text("")

6
$('#div_id').empty();

hoặc là

$('.div_class').empty();

Hoạt động tốt để xóa nội dung bên trong div


3
Bản sao câu trả lời của Emil Ivanov.
Adrian Enriquez

6

Bạn có thể sử dụng hàm .empty () để xóa tất cả các phần tử con

 $(document).ready(function () {
  $("#button").click(function () {
   //only the content inside of the element will be deleted
   $("#masterdiv").empty();
  });
 });

Để xem so sánh giữa jquery .empty (),. Leather (), .remove () và .detach () theo dõi tại đây http://www.voidtricks.com/jquery-empty- leather-remove-detach /


5

Khi bạn đang nối thêm dữ liệu vào div bằng id bằng bất kỳ dịch vụ hoặc cơ sở dữ liệu nào, trước tiên hãy thử dữ liệu trống, như thế này:

var json = jsonParse(data.d);
$('#divname').empty();

4
$("#masterdiv div[id^='childdiv']").each(function(el){$(el).empty();});

hoặc là

$("#masterdiv").find("div[id^='childdiv']").each(function(el){$(el).empty();});

3

Tôi biết đây là một jQuerycâu hỏi liên quan, nhưng tôi tin rằng ai đó có thể đến đây mong đợi một Javascriptgiải pháp thuần túy . Vì vậy, nếu bạn đang cố gắng thực hiện việc này bằng cách sử dụng js, bạn có thể sử dụng thuộc innerHTMLtính và đặt nó thành một chuỗi trống.

document.getElementById('masterdiv').innerHTML = '';

1
đây là kết quả hàng đầu trên Google khi tìm kiếm cách làm trống div. Cảm ơn bạn!
Tự hào

0

Hãy thử chúng nếu nó giúp.

$('.div_parent .div_child').empty();

$('#div_parent #div_child').empty();


tại sao "-1". Tôi chỉ cố gắng giúp đỡ?
Gaurav Kaushik
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.