2011-04-21 68 views
18

Có ai đó biết cách làm trống nội dung của div (không phá hủy nội dung) trong JavaScript không?Cách xóa nội dung của một div

Cảm ơn,

Bruno

+0

qua jscript? chỉ bằng cách làm cho nó không nhìn thấy được? Bạn thực sự muốn làm gì? – ITroubs

+0

Với JavaScript? và jQuery? –

+0

Cảm ơn mọi người vì câu trả lời của bạn! – Bruno

Trả lời

38

Nếu div của bạn trông như thế này:

<div id="MyDiv">content in here</div>

Sau đó Javascript này:

document.getElementById("MyDiv").innerHTML = "";

sẽ làm cho nó trông giống như thi s:

<div id="MyDiv"></div>

+2

Làm việc tuyệt vời. Điều này loại bỏ JS (một bản đồ OpenLayers trong trường hợp của tôi) từ div trong khi $ ('# example'). Empty(); đã không gỡ bỏ JS. –

+1

Cảm ơn. Nó cũng làm việc cho tôi vào năm 2017! –

+0

Điều đó phá hủy nó. – JackHasaKeyboard

8

Nếu bạn đang sử dụng jQuery ...

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

hoặc

$('div').empty(); 
+1

Ông hỏi trong javascript không jquery. – easwee

1

Trong jQuery nó sẽ là đơn giản như $('#yourDivID').empty()

Xem documentation.

+1

Câu hỏi ban đầu không đề cập đến jquery. Vui lòng ngừng giả định các hoạt động javascript cơ bản yêu cầu một số loại thư viện bên ngoài cho mọi tác vụ đơn giản. – mopsyd

+0

@mopsyd oh boy, điều này có cần thiết sau 5 năm kể từ khi trả lời không? jQuery là loại tiêu chuẩn trong năm 2011 và thông tin của bạn vẫn được sử dụng rộng rãi. jQuery là javascript btw. nếu bạn không biết ... –

+0

như vậy là 'document.querySelector (" # myDiv "). InnerHTML =" ";' – mopsyd

3

Nếu bằng cách nói mà không phá hủy nó, bạn có nghĩa là một giữ một tham chiếu đến trẻ em, bạn có thể làm:

var oldChildren = []; 

while(element.hasChildNodes()) { 
    oldChildren.push(element.removeChild(element.firstChild)); 
} 

Về gắn thẻ gốc (html css) của câu hỏi của bạn:

Bạn không thể xóa nội dung bằng CSS. Bạn chỉ có thể che giấu nó. Ví dụ. bạn có thể ẩn tất cả trẻ em của một nút nhất định với:

#someID > * { 
    display: none; 
} 

Điều này không hoạt động trong IE6 mặc dù (nhưng bạn có thể sử dụng #someID *).

0

Một cách khác để làm điều đó là:

var div = document.getElementById('myDiv'); 
while(div.firstChild) 
    div.removeChild(div.firstChild); 

Tuy nhiên, sử dụng document.getElementById('myDiv').innerHtml = ""; là nhanh hơn.

Xem: Benchmark test

N.B.

Cả hai phương pháp đều bảo toàn div.

+1

Tôi có đang đọc sai bài kiểm tra đó không? Đối với tất cả các trình duyệt, cách đầu tiên có ops/sec cao hơn có nghĩa là nó nhanh hơn. Cách thứ hai là chậm hơn và phức tạp hơn. – pucky124

+0

Không, bạn nói đúng. Tôi hiểu sai điều đó. Tôi nhầm các hoạt động mỗi giây, tổng thời gian. Tôi sẽ cập nhật câu trả lời của mình. –

Các vấn đề liên quan