Remove element with jQuery but leave text
I've got some html that looks like this:
<div>
<span class="red">red text</span> some more text <span class="blue">blue text</span>
</div>
What I want to do is use j开发者_如何转开发Query to remove all the spans within the div regardless of attached class, but leave the text within the span tags behind. So the final result will be:
<div>
red text some more text blue text
</div>
I've tried to use the unwrap()
method but it unwraps the div. I've also tried to remove the elements but that removes the elements and their text.
jQuery 1.4+
You don't want to unwrap the span, you want to unwrap its contents:
$("span").contents().unwrap();
Online Demo: http://jsbin.com/iyigi/edit
jQuery 1.2+
For earlier versions of jQuery, you could do the following:
$("span").replaceWith(function () {
return $(this).text();
});
Online Demo: http://jsbin.com/iyigi/40/edit
Wouldn't a simple $('#my-div').text ($('#my-div').text ())
suffice, without resorting to unwrapping?
$(mydiv).html($(mydiv).text())
should do the trick.
精彩评论