2010-04-15 95 views
42

我試圖在重新填充它之前清除div的innerHTML。我嘗試過removeData(),但是一旦調用它,當我嘗試添加數據時,在刪除後我從下一行中得不到任何東西,而如果刪除了removeData(),那麼再次正常。我只想在重新填充之前清除該div中的任何以前的內容。從div中刪除innerHTML

divToUpdate.removeData(); //clean out any existing innerHTML div content first 
    divToUpdate.html(data); 

看起來它從來沒有得到我的divToUpdate.html(數據)由於某種原因,它調用之後removeData();

+0

這是什麼事件?一個onclick或一個Ajax響應? – 2010-04-15 20:12:16

回答

1

你應該能夠只是簡單地覆蓋它不刪除以前的數據

3
divToUpdate.innerHTML =  ""; 
9
$('div').html(''); 

但是爲什麼你清除,divToUpdate.html(data);將完全取代舊的HTML。

+0

,因爲我認爲每次關閉並重新打開jQuery UI對話框時,父頁面中的div都保留舊的innerHTML – PositiveGuy 2010-04-15 20:12:25

+0

您如何知道這一點?除了查看清除它的div內容之外,你引用了哪些內容會告訴你? – PositiveGuy 2010-04-15 20:14:46

+0

在jQuery文檔中(http://api.jquery.com/html/)「設置爲每個匹配元素內容的HTML字符串。」我把這個作品解釋爲「替換」。爲了驗證這一點,我可以做兩行代碼之間的alert($('div')。html())來驗證。 – 2010-04-15 20:20:10

21

要刪除您的div的所有子元素:

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

.removeData()和相應.data()功能是用來連接一個元素背後的數據,說如果你要注意的是一個特定的列表元素稱爲用戶ID 25在您的數據庫中:

var $li = $('<li>Joe</li>').data('id', 25); 
+0

如何選擇使用此li? – Omer 2017-09-17 20:21:26

98

jQuery數據是一個不同於HTML的概念。 removeData不用於刪除元素內容,它用於刪除先前存儲的數據項。

只是做

divToUpdate.html(""); 

divToUpdate.empty(); 
1

var $div = $('#desiredDiv'); 
$div.contents().remove(); 
$div.html('<p>This is new HTML.</p>'); 

這應該只是罰款。