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

时间:2011-05-17 21:01:24

标签: javascript jquery html

今晚我有点累,只是简直无法想到如何做到这一点。基本上,我有类似于下面的东西,我想剥离html标签,但留下他们的内容:

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

并实际返回以下内容:

some content and more and more content

一如既往的帮助 - 非常感谢!

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

5 个答案:

答案 0 :(得分:11)

答案 1 :(得分:4)

$(selector).text()应该删除所有的html。

答案 2 :(得分:2)

这种方式有点长,但可能比contents()方法更具自我解释性。

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

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

答案 3 :(得分:2)

你可以写

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

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

答案 4 :(得分:0)

也许是这样的:

jQuery.fn.stripTags = function() {
    return this.replaceWith( this.html().replace(/<\/?[^>]+>/gi, '') );

};

来源:http://www.mail-archive.com/jquery-en@googlegroups.com/msg18843.html