我有一个包含可变HTML内容的字符串。 该字符串可以包含一个,多个或没有p标签,它们也可以包含类。
使用jQuery 删除所有p标记的最佳方法是什么,同时保留每个标记的HTML内容。
我首先尝试了以下内容,但当然只有将整个字符串包装在一个段落中才会有效,如果段落上有类或其他属性,则无法覆盖:
str.substring(3).slice(0, -4);
修改 这是一个例子,但是p标签的数量可以变化,也可以没有。
之前的例子:
<p>Some text <p class="someClass"> Some other text</p> Some more text</p>
示例之后:
"Some text Some other text Some more text"
非常感谢你提供任何帮助,蒂姆。
答案 0 :(得分:4)
答案 1 :(得分:2)
您可以使用regular expression执行此操作。它只删除p标签并保留所有其他标签。
<强>的JavaScript 强>
var string = "<p>this is a test with <p class='bold'>multiple</p> p-tags.</p><span>THIS IS COOL</span>";
var result = string.replace(/<[\/]{0,1}(p)[^><]*>/ig,"");
console.log(result);
<强> FIDDLE 强>
如果您要删除所有代码,可以使用/(<([^>]+)>)/ig
代替正则表达式。
答案 2 :(得分:1)
尝试以下方法:
var str = "<p>Test</p>";
var res = str.replace("<p>", "").replace("</p>", "");
答案 3 :(得分:1)
如果我理解正确,并且您希望删除p标签,但内容仍然存在,则应该如下所示:
str.replace('<p>', '').replace('</p>', '');
答案 4 :(得分:1)
您还可以使用replaceWith - jsFiddle Example,可读并使用父/子标记
$('p').replaceWith($('p').text())