Within a CMS I am working on a blog. The HTML structure of the output for each post title looks like this:
<h2>
<a href="...">Title</a>
</h2>
What I want to do is remove the <a>
tag that wraps the content representing the blog title.
I did a bit of looking around and found 2 almost-solutions:
remove()
- this will remove the content itself too thoughunwrap()
- I don't think you can target text within a tag with this to get rid of the tag itself.Use .wrapInner
first and unwrap the new structure..
$('h2 a').wrapInner('<span>').children().unwrap();
Demo at http://jsfiddle.net/gaby/ffKDn/
Updating with a better way ..
Use the .contents()
to target the text nodes and use .unwrap()
on those..
$('h2 a').contents().unwrap();
Demo at http://jsfiddle.net/gaby/ffKDn/8/
This would be achieved much more efficiently by editing the appropriate template within the CMS. But you can accomplish it with the following.
$(document).ready(function() {
$('h2').each(function() {
$(this).html($(this).children().html());
});
});
See this JSFiddle example.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With