删除标签但保留内容 - jQuery/Javascript

5

今晚我有些累,不太清楚如何简单地完成这个任务。基本上,我有类似下面的东西,我想去掉HTML标签但保留它们的内容:

<a href="#">some content</a> and more <a href="#"> and more content</a>

并实际返回以下内容:
some content and more and more content

一如既往地感谢您的帮助!

编辑:非常感谢大家的答案 - 我一直在按照正则表达式的路线走,结果过于复杂了!我最终使用了下面建议的 .text() 方法,我以前只用它来设置,从未用来检索,但这次它的效果更好,因为我返回了一个相当大的对象!非常感谢所有的建议 :). 6分钟后我会接受这个答案。

5个回答


4

$(selector).text()应该去除所有的html标签。


从来不知道这个方法默认会去掉标签!我只用它来设置文本或检索纯文本,非常感谢您开阔了我的思路! - Jamie

2

这种方法可能比contents() 方法更长,但更易于理解。

$('a').each(function () {
    $(this).replaceWith($(this).html())
})

replaceWith接受替换的html(而不是选择器)。


2

你可以编写

$(...).find('*')
      .replaceWith(function() { return this.childNodes });

我不确定这个功能在处理嵌套标签时能否正常使用。

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接