在CMS中我正在写博客。每个帖子标题的输出的HTML结构如下所示:
<h2>
<a href="...">Title</a>
</h2>
我想要做的是删除包含代表博客标题的内容的<a>
标记。
我做了一些环顾四周,发现了两个差不多的解决方案:
remove()
- 这也将删除内容本身unwrap()
- 我认为你不能用标签来定位标签内的文字来摆脱标签本身。答案 0 :(得分:13)
首先使用.wrapInner
并打开新结构..
$('h2 a').wrapInner('<span>').children().unwrap();
http://jsfiddle.net/gaby/ffKDn/
演示以更好的方式更新..
使用.contents()
定位文本节点,并在这些节点上使用.unwrap()
。
$('h2 a').contents().unwrap();
演示
答案 1 :(得分:1)
通过在CMS中编辑适当的模板,可以更有效地实现这一目标。但是你可以通过以下方式完成它。
$(document).ready(function() {
$('h2').each(function() {
$(this).html($(this).children().html());
});
});
答案 2 :(得分:0)
您可以使用remove()
但首先需要捕获文本。像这样的东西
var title = $('h2 a').text();
//grab the text from the a href
$('h2').remove('a');
//remove the link
$('h2').html(title);
//add the title back to the h2