使用JavaScript和jQuery,解析HTML文档以查找并删除其中的<p>Â&nbsp;</p>标签。

4
我有一个可靠的来源,有时会返回包含以下内容的html:<p>Â&nbsp;</p> ,在我的页面上显示为 "Â "。它没有 classid 可以帮助我选择和删除它。我不能可靠地使用后代选择器像 li > p 或者给 p 添加 class
有没有一种方法可以解析html页面中匹配内容的 p 标签,然后将其删除?
我发现了这个类似问题的解决方案,但对我不起作用。也许这不是适合我的方法:JavaScript:如何从字符串中去除HTML标记?

听起来你遇到了未能正确转换为正确字符集的Unicode字符。你应该确保你的页面正在使用正确的字符集。 - ThatBlairGuy
2个回答

2
这个怎么样:

类似这样的东西:

$("p:contains(Â):not(:has(p))").remove();

据我理解,&nbsp;是整个段落的内容,他想要删除整个段落。你之前的解决方案完全没问题。 - John Dvorak
啊,让我回滚一下。我不知道他想要整个元素被移除。 - tymeJV
在使用此方法处理可以嵌套的元素时要小心 - 选择器必须稍微修改,例如 p:contains(Â):not(:has(p)) - John Dvorak
请注意,p元素是 不能 嵌套的 ;) - John Dvorak

0

尝试一下

$(document.body).html($(document.body).html().replace('Â', ""));

工作演示


1
这会有副作用,会删除任何附加的事件处理程序。这不好。 - John Dvorak
谢谢!很棒的解决方案。我一定要深入研究这段代码。感谢你的帮助! - user2482562

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接