Кто-нибудь знает, как очистить содержимое div (без его уничтожения) в JavaScript?
Спасибо,
Бруно
Кто-нибудь знает, как очистить содержимое div (без его уничтожения) в JavaScript?
Спасибо,
Бруно
Если ваш div выглядит так:
<div id="MyDiv">content in here</div>
Затем этот Javascript:
document.getElementById("MyDiv").innerHTML = "";
будет выглядеть так:
<div id="MyDiv"></div>
Если вы используете jQuery...
$('div').html('');
или
$('div').empty();
Если, сказав, не уничтожив его, вы хотите сохранить ссылку на детей, вы можете сделать:
var oldChildren = [];
while(element.hasChildNodes()) {
oldChildren.push(element.removeChild(element.firstChild));
}
Относительно оригинальной маркировки (html css
) вашего вопроса:
Вы не можете удалить содержимое с помощью CSS. Вы могли только скрыть это. Например. вы можете скрыть всех детей определенного node с помощью:
#someID > * {
display: none;
}
Это не работает в IE6 (но вы можете использовать #someID *
).
Альтернативный способ сделать это:
var div = document.getElementById('myDiv');
while(div.firstChild)
div.removeChild(div.firstChild);
Однако, используя document.getElementById('myDiv').innerHTML = "";
быстрее.
Смотри: контрольный тест
NB
Оба метода сохраняют div.
В jQuery это будет так же просто, как $('#yourDivID').empty()
См. документацию .
Этот метод работает лучше всего для меня:
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();
или же
document.getElementsByClassName('DIV_Class').remove();
Вы можете .remove()
каждый ребенок:
const div = document.querySelector('div.my-div')
while(div.firstChild) div.firstChild.remove()