JavaScript remove() doesn't work in IE
internet-explorer, javascript
Solution
IE doesn't support `remove()` native Javascript function but does support `removeChild()`.
Browser compatibility for remove()
Solution n°1
Use `remove()` in pure Javascript you can declare it yourself with this following code :
// Create Element.remove() function if not exist
if (!('remove' in Element.prototype)) {
Element.prototype.remove = function() {
if (this.parentNode) {
this.parentNode.removeChild(this);
}
};
}
// Call remove() according to your need
child.remove();
As you can see the function get the parent node of element and then remove this element from his parent with `removeChild()` native function.
Solution n°2
Use `removeChild()` in pure JavaScript on all browser including IE just call it insteed of `remove()`.
element.removeChild(child);
More info on Mozilla Developer Network.
Solution n°3
Use jQuery through code.jquery.com CDN by using this following code :
<!-- Include jQuery -->
<script
src="https://code.jquery.com/jquery-3.2.1.min.js"
integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="
crossorigin="anonymous"></script>
<!-- Use remove() -->
<script>
child.remove();
</script>
The function is included in the jQuery library so you can call it after inclusion.
Happy coding ! :-)
Problem
I have the following code in JavaScript: ``` all_el_ul = document.getElementsByClassName('element_list')[0]; div_list = all_el_ul.getElementsByTagName("div"); for (i = 0; i < div_list.length; i += 1) { div_list[i].remove(); } ``` I know that this is the problem because I used `alert('test');` to see where the code stops working. Everything is working in FF, Chrome, Opera and others but not in IE. Could you please tell what is wrong?