繁体   English   中英

jQuery仅转义某些html实体

[英]jQuery escape certain html entities only

我有一个小档案系统,其中有提及

我的帖子表中的“内容”值存储为:

<a href="/profile/Alice">Alice</a> Alice, you there? &lt;strong&gt;lol&lt;/strong&gt;
  • 我的系统生成了href个人资料链接(我将所有提及都替换为指向个人资料的html链接)
  • <strong>大声笑</ strong>是我不希望显示的用户定义的HTML(我在所有用户帖子上都使用htmlentities(),因此他们的html输入变成了这样)

但是,最终结果是一切都显示为HTML(我使用json和jquery显示它们)。 如何使它只显示HTML(对于我的提及链接),而不显示所有用户指定的? (即<strong>)

我希望帖子在超级链接中显示提及,但同时,我不希望所有用户输入的html都显示为html。

我使用jQuery append来显示我的帖子。

谢谢!

$str = '<a href="/profile/Alice">Alice</a> Alice, you there? &lt;strong&gt;lol&lt;/strong&gt;';
$str = html_entity_decode($str);
echo $str;
exit;

如果我了解您想要什么,我认为这可以做到。 find("*")仅匹配HTML标记,因此标记外的文本节点被过滤掉。

 var content = '<a href="/profile/Alice">Alice</a> Alice, you there? &lt;strong&gt;lol&lt;/strong&gt;'; var wrapped = $("<div>", { html: content }); $("#output").append(wrapped.find("*")); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div id="output"></div> 

我首先将其包装在DIV ,因为.find()仅搜索子级,而不搜索顶级节点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM