问题
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.
回答1:
shouldn't this line work
document.getElementById("mydiv").outerHTML = document.getElementById("mydiv").innerHTML
See this JSBin Example (inspect the element)
回答2:
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);
回答3:
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.
来源:https://stackoverflow.com/questions/11580292/removing-wrapper-div-without-jquery-raw-javascript