Javascript 如何清空div的内容
有人知道如何在JavaScript中清空div的内容(而不破坏它)吗 谢谢Javascript 如何清空div的内容,javascript,html,Javascript,Html,有人知道如何在JavaScript中清空div的内容(而不破坏它)吗 谢谢 布鲁诺如果您的div看起来像这样: 此处的内容 然后这个Javascript: document.getElementById(“MyDiv”).innerHTML=“” 将使其看起来像这样: 如果您正在使用jQuery $('div').html(''); 或 在jQuery中,它将像$('#yourDivID').empty()一样简单。 请参阅。如果在不销毁它的情况下说,您的意思是保留对孩子的引用,您可以执行以下
布鲁诺如果您的div看起来像这样:
此处的内容
然后这个Javascript:
document.getElementById(“MyDiv”).innerHTML=“”代码>
将使其看起来像这样:
如果您正在使用jQuery
$('div').html('');
或
在jQuery中,它将像$('#yourDivID').empty()一样简单。
请参阅。如果在不销毁它的情况下说,您的意思是保留对孩子的引用,您可以执行以下操作:
var oldChildren = [];
while(element.hasChildNodes()) {
oldChildren.push(element.removeChild(element.firstChild));
}
关于您问题的原始标记(html css
):
不能使用CSS删除内容。你只能把它藏起来。例如,您可以使用以下方法隐藏某个节点的所有子节点:
#someID > * {
display: none;
}
但这在IE6中不起作用(但您可以使用#someID*
)。另一种方法是:
var div = document.getElementById('myDiv');
while(div.firstChild)
div.removeChild(div.firstChild);
但是,使用document.getElementById('myDiv').innerHTML=“”代码>更快
见:
N.B.
这两种方法都保留了分区。此方法对我最有效:
Element.prototype.remove = function() {
this.parentElement.removeChild(this);
}
NodeList.prototype.remove = HTMLCollection.prototype.remove = function() {
for(var i = this.length - 1; i >= 0; i--) {
if(this[i] && this[i].parentElement) {
this[i].parentElement.removeChild(this[i]);
}
}
}
要使用它,我们可以这样部署:
document.getElementsByID('DIV_Id').remove();
或
您可以.remove()
每个子项:
const div=document.querySelector('div.my-div'))
while(div.firstChild)div.firstChild.remove()
是否通过jscript?只是让它不可见?你到底想要什么?谢谢大家的回答!另请参见封闭的老问题:他用javascript而不是jquery提问。效果很好。这将从div中删除JS(在我的例子中是一个OpenLayers映射),而$('#example').empty();没有删除JS。这会破坏它。原始问题没有提到jquery。请停止假设基本的javascript操作对于每个简单的任务都需要某种外部库。@mopsyd噢,男孩,这在回答问题5年后是必要的吗?:)jQuery在2011年算是一种标准,就您所知,它仍然被广泛使用。顺便说一句,jQuery是javascript。如果您不知道,document.querySelector(“#myDiv”).InnerHTML=“”代码>这样做不需要所有jQuery的开销。另外,建议更好的练习是不受限制的。@mopsyd这是你的意见。该库(jQuery)使非常复杂的任务变得简单得多。非常大的网站使用它。所以放松点。如果你想用艰难的方式做事,你也有权选择。没人在乎。我是不是误读了那个测试?对于所有浏览器,第一种方式的每秒操作数更高,这意味着它的速度更快。第二种方法更慢,更复杂。不,你是对的。我误解了。我把每秒的操作误认为是总时间。我会更新我的答案。
document.getElementsByID('DIV_Id').remove();
document.getElementsByClassName('DIV_Class').remove();