从div中删除innerHTML

61
我试图在重新填充div之前清除其innerHTML。我尝试使用removeData(),但一旦调用该方法,在我尝试添加数据时,从remove后的下一行代码得不到任何东西,而如果我不调用removeData(),则恢复正常。我只想清除该div中以前的任何内容,然后再重新填充它。
    divToUpdate.removeData(); //clean out any existing innerHTML div content first
    divToUpdate.html(data);

看起来调用了removeData()之后,由于某种原因它似乎从未到达我的divToUpdate.html(data)。

6个回答

119

jQuery数据是与HTML不同的概念。removeData并不是用于删除元素内容,而是用于删除先前存储的数据项。

只需执行

divToUpdate.html("");
或者
divToUpdate.empty();

29
从您的div中删除所有子元素:
```html

从您的 div 元素中移除所有子元素:

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

.removeData()和相应的.data()函数用于在元素后面附加数据,比如你想记录某个列表元素在你的数据库中对应的用户ID 25:

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

如何使用此li进行选择? - Omer

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

但是为什么要清除,divToUpdate.html(data);将完全替换旧的HTML。


因为我相信每次关闭并重新打开jQuery UI对话框时,父页面中的div仍然保留着旧的innerHTML。 - PositiveGuy
你是怎么知道的?除了查看div内容之外,你参考了什么来告诉你它清除了它? - PositiveGuy
在 jQuery 文档(http://api.jquery.com/html/) 中,“A string of HTML to set as the content of each matched element.”我理解 “set” 的含义为替换。为了验证这一点,我可以在两行代码之间添加 alert($('div').html()) 以进行验证。 - Christopher Altman

4
divToUpdate.innerHTML =     "";   

3

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

那应该完全没问题。

2

您应该能够在不删除先前数据的情况下覆盖它


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接