2011-04-21 60 views
18

有人知道如何在JavaScript中清空div的內容(而不銷燬它)嗎?如何清空div的內容

感謝,

布魯諾

+0

通過jscript?只是通過使其不可見?你想要什麼? – ITroubs 2011-04-21 12:42:19

+0

使用JavaScript?和jQuery? – 2011-04-21 12:42:23

+0

謝謝大家的回答! – Bruno 2011-04-21 12:56:05

回答

38

如果你的DIV是這樣的:

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

然後此Javascript:

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

將使它看起來像THI S:

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

+2

工作很好。這個從div刪除JS(在我的情況下是一個OpenLayers地圖),而$('#example')。empty();沒有刪除JS。 – 2014-08-26 20:57:01

+1

謝謝。它在2017年也適用於我! – 2017-06-09 09:26:36

+0

破壞它。 – JackHasaKeyboard 2017-09-13 02:17:34

8

如果你正在使用jQuery ...

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

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

他在javascript中問的不是jquery。 – easwee 2011-04-21 12:44:03

1

在jQuery中這將是這麼簡單$('#yourDivID').empty()

documentation

+1

原來的問題沒有引用jquery。請停止假設基本的JavaScript操作需要某種外部庫用於每個簡單的任務。 – mopsyd 2016-04-04 17:30:29

+0

@mopsyd哦,男孩,這是否需要5年後的答案? :) jQuery在2011年是有點標準的,對於你的信息它仍然被廣泛使用。 jQuery是javascript btw。如果你不知道...... – 2016-04-05 06:49:58

+0

so'document.querySelector(「#myDiv」)。InnerHTML =「」;' – mopsyd 2016-04-05 19:04:22

3

如果說不破壞它,你的意思是一個不斷給孩子們一個參考,你可以這樣做:

var oldChildren = []; 

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

關於你的問題的原標籤(html css):

您無法使用CSS刪除內容。你只能隱藏它。例如。你可以隱藏某個節點的所有孩子:

#someID > * { 
    display: none; 
} 

這並不工作在IE6雖然(但你可以使用#someID *)。

0

的另一種方式做到這一點是:

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

但是,使用document.getElementById('myDiv').innerHtml = "";更快。

參見:Benchmark test

注:

兩種方法都保留div。

+1

我誤讀了那個測試?對於所有瀏覽器來說,第一種方法的操作數更高,這意味着它的速度更快。第二種方式更慢,更復雜。 – pucky124 2017-09-13 02:28:02

+0

不,你說得對。我誤解了這一點。我每秒誤操作總時間。我會更新我的答案。 – 2017-09-13 10:47:28