删除标签(和标签内容)但留下文字

Posted

技术标签:

【中文标题】删除标签(和标签内容)但留下文字【英文标题】:Remove tags (and tag content) but leave text 【发布时间】:2013-07-02 19:50:50 【问题描述】:

给定这种形式的 html

<div>
    <a href="#">Generic Anchor</a>
    <li> Some text </li>
    <b> More stuff </b>
    Just text.
</div>

标签是随机的,有没有办法在 jQuery(或 javascript)中将其缩减为仅文本,意思是

<div>
    Just text.
</div>

无需指定要删除的特定标签(我知道 .text(),但我不想要要删除的标签的内容)。

【问题讨论】:

【参考方案1】:

试试这个:http://jsfiddle.net/5SRLE/1/

$("div").children().remove();

当然,您需要使用该选择器来定位特定的div(如果您有其他不想从中删除子级的 div)。如果您有问题,请显示您的上下文,以便我们使其更具体...

【讨论】:

这似乎可行,但出于某种原因,在执行$(this).children().remove()$(this).text() 之后失败,但this.textContent 有效。这是预期的行为吗? text() 似乎在这里工作正常:jsfiddle.net/5SRLE/2。如果出于某种原因text() 对您不起作用,但textContent 对您有效,请继续使用textContent(甚至innerHTML,因为您已经删除了非文本内容)。如果你可以只使用元素属性而不是 jquery 方法,我更喜欢这样做。 是的,我不知道为什么text() 不起作用,但如果我能得到文本也没关系。

以上是关于删除标签(和标签内容)但留下文字的主要内容,如果未能解决你的问题,请参考以下文章

iOS 删除字符串中html标签

HTML 敏捷包 - 删除不需要的标签而不删除内容?

删除 HTML 标签的正则表达式

html中的文本标签

Powershell 删除字符串内容中的 HTML 标签

UILabel标签文字过长时的显示方式