Javascript 如何清空div的内容

Javascript 如何清空div的内容,javascript,html,Javascript,Html,有人知道如何在JavaScript中清空div的内容(而不破坏它)吗 谢谢 布鲁诺如果您的div看起来像这样: 此处的内容 然后这个Javascript: document.getElementById(“MyDiv”).innerHTML=“” 将使其看起来像这样: 如果您正在使用jQuery $('div').html(''); 或 在jQuery中,它将像$('#yourDivID').empty()一样简单。 请参阅。如果在不销毁它的情况下说,您的意思是保留对孩子的引用,您可以执行以下

有人知道如何在JavaScript中清空div的内容(而不破坏它)吗

谢谢


布鲁诺

如果您的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();