今晚我有点累,只是简直无法想到如何做到这一点。基本上,我有类似于下面的东西,我想剥离html标签,但留下他们的内容:
<a href="#">some content</a> and more <a href="#"> and more content</a>
并实际返回以下内容:
some content and more and more content
一如既往的帮助 - 非常感谢!
编辑:非常感谢你们的答案 - 在那里我沿着正则表达式路线前进,过分复杂的事情!我实际上最终使用.text(),如下所示,我之前使用过这个,但只是设置,永远不会检索,因为我返回了一个很大的对象,它工作得更好!非常感谢你的所有建议:)。我会在6分钟后接受答案。
答案 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