2011-05-17 62 views
5

今晚我有点累,只是不能真正想到如何做到这一点。基本上,我有类似于下面的东西,我想去掉html标签,但留下它们的内容:删除标签,但留下内容 - jQuery/Javascript

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

,实际上返回以下内容:

some content and more and more content 

任何帮助一如既往 - 大规模感谢!

编辑:非常感谢大家的答案 - 那里我正在走下正则表达式的路线,让事情变得复杂!我实际上最终使用.text()如下建议,我以前使用过,但只是设置,永远不会检索,它会更好地工作,因为我正在返回一个很大的对象!非常感谢你的所有建议:)。 6分钟后我会接受答案。

回答

4

$(selector).text()应该去掉所有的html。

+0

从来不知道这种方法默认剥离标签!我只用它来设置文本,或者检索纯文本,非常感谢你打开我的想法! – Jamie 2011-05-17 21:12:25

2

这种方式是长一点,但也许更多的自我解释比contents()方法。

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

replaceWith接受替换html。 (不选择)

2

你可以写

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

我不知道这将如何处理好嵌套标签。

相关问题