Jquery:从字符串中删除所有特定的 HTML 标签

标签 jquery

我有一个包含文本字符串和 html 标记的变量,例如:

var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>";

我想删除某种类型的所有标签。以所有 pspan 标记为例。

这是我能想到的最好的:

var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>";
var $temp = $(temp);
$("p", $temp).replaceWith("foo");
alert($temp.html());  //returns "Some text"

我能找到的最接近的回复是 Nick Craver 的回答:strip span tags from string with jquery

最佳答案

演示:http://jsfiddle.net/VwTHF/1/

$('span, p').contents().unwrap();

.contents()将获取每个此类标签内的元素和文本,并且 .unwrap将删除包裹每个内容部分的元素。

根据您当前的方法,它看起来像这样:

var temp = "<div>Some text</div><p>More text<span>here</span></p><p>Even more</p>";
var $temp = $(temp);
$temp.find('span, p').contents().unwrap().end().end();

如果您想继续定位原始对象,则必须使用.end()来清除过滤器。

关于Jquery:从字符串中删除所有特定的 HTML 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442464/

相关文章:

javascript - 向下滚动时隐藏 div

javascript - 添加 Div's on Click with counter & limit

javascript - Uncaught ReferenceError : $ is not defined?

javascript - 如何从 querySelectorAll 获取按钮类型

jquery - 迭代并向每个段落添加类

javascript - jQuery 验证依赖于组并需要

javascript - jQuery - 链接 native 函数

java - 在 Spring 中从 Controller 在 toastr 中显示消息

jquery - 为什么 jQuery 单击包含在单独的文件中时不起作用

jquery - 如何使用 jQuery 从另一个 HTML 文件中获取 "slide in"内容