Уроженец childNode.remove()
новый экспериментальный метод, который не поддерживается в Internet Explorer, только в Краю
Таблица совместимости с MDN
Вы могли бы использовать более широкую поддержку Node.removeChild
вместо
var all_el_ul = document.getElementsByClassName('element_list')[0];
var div_list = all_el_ul.getElementsByTagName("div");
for (i = 0; i < div_list.length; i += 1) {
div_list[i].parentNode.removeChild(div_list[i]);
}
или использовать polyfill from MDN, чтобы добавить поддержку для всех браузеров
(function (arr) {
arr.forEach(function (item) {
if (item.hasOwnProperty('remove')) {
return;
}
Object.defineProperty(item, 'remove', {
configurable: true,
enumerable: true,
writable: true,
value: function remove() {
this.parentNode.removeChild(this);
}
});
});
})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
Существует также метод remove()
в JQuery, что делает работы кросс-браузер, но это потребует добавления библиотеки JQuery.
$('.element_list').first().find('div').remove();
В getElementsByClassName
работает заметка на полях только из IE9 и выше, используя querySelector
бы добавить поддержку IE8, а
var all_el_ul = document.querySelector('.element_list');
возможно дубликат [JQuery удалить DIV не работает в Internet Explorer] (http://stackoverflow.com/questions/9443470/jquery-remove-div-not-working-in-internet-explorer) –
Проверьте [документацию] (https://developer.mozilla.org/en-US/docs/Web/API/ChildNode.remove) : * «Поскольку спецификация этой технологии не стабилизировалась, проверьте таблицу совместимости для правильных префиксов для использования в разных браузерах. Также обратите внимание, что синтаксис и поведение экспериментальной технологии могут изменяться в будущих версиях браузеров по мере изменения спецификации. "* –
@Bartdude: Нет, это не проблема. –