Reputation: 8176
I know there is a solution with Jquery called unwrap, but I am writing "raw" JavaScript. I didn't find any solution without jQuery.
I'd like to remove a div like so:
<div><div id="mydiv">Important text here</div></div>
After removal of "mydiv":
<div>Important text here</div>
What should I do, I'd like to know the theory.
Thanks in advance.
Upvotes: 5
Views: 5588
Reputation: 8641
shouldn't this line work
document.getElementById("mydiv").outerHTML = document.getElementById("mydiv").innerHTML
See this JSBin Example (inspect the element)
Upvotes: 14
Reputation: 6394
Try
var el = document.getElementById('mydiv');
var text = el.innerText; //or el.innerHTML
el.parentNode.innerHTML = text;
This would replace the html of mydiv's parent with the content of mydiv.
Upvotes: 0
Reputation: 27765
You need to use removeChild
method for that:
var divToRemove = document.getElementById('mydiv').;
var tmpStr = divToRemove.innerHTML;
var parent = divToRemove.parentNode;
parent.removeChild(divToRemove);
parent.inerHTML(tmpStr);
Upvotes: 0