javascript - 附加标签时如何避免图像标签
问题描述
我正在使用 jQueryappend()
函数在 ajax 响应后添加标签和标签,但是当它附加图像标签时开始显示图像。相反,它应该显示您收到图像的消息。
这是我正在做的
$.ajax({
type: "GET",
url: `/get_unread_count/${conversation.id}`,
success: function (data) {
var unread_count = data.unread_count;
if(unread_count > 0){
var count_html = ` <div class="kt-widget__action">
<span class="kt-widget__date"></span>
<span class="kt-badge kt-badge--success kt-font-bold mr-2">${unread_count}</span>
</div>`;
}else{
var count_html = '';
}
$('.kt-widget__items').append(`
<div class="kt-widget__item" id="${conversation.messageable_type}" onclick="message(${conversation.conversation_id},${conversation.messageable_id},this,'${name}',${id});appendRealTimeMessage(${conversation.conversation_id});">
<span class="kt-media kt-media--circle">
<img src="/business_logo/${logo}" alt="image">
</span>
<div class="kt-widget__info">
<span class="kt-widget__desc ">
${conversation.conversation.last_message.body ?? ''}
</span>
</div>${count_html}
</div>`);
conversation.conversation.last_message.body
有可能有 img 标签的消息正文我想要的是如果有一个图像标签,它应该显示你收到图像的消息。
这怎么可能?
解决方案
在附加到 DOM 之前使用 Rgex () 从文本 html 中删除 img 标签
喜欢 :
let messageWIthoutImgTag =
conversation.conversation.last_message.body.replace(/<img[^>]*>/g,'<span class="imgtag">you received an image</span>');
有关更多理解,请参见以下代码段:
messagebody = `<div class="red"><p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum tortor quam, feugiat vitae, ultricies eget, tempor sit amet,<img src="https://bibliotheques.csdm.qc.ca/files/2018/11/10_banques_dimages_gratuites_libres_de_droits-300x169.jpg" /> ante. Donec eu libero sit amet quam egestas semper. Aenean ultricies mi vitae est. Mauris placerat eleifend leo.</p><br> <img src="http://cybersavoir.csdm.qc.ca/bibliotheques/files/2018/11/Cc-by_new.svg_.png" /><p>text 222</p> </div>`
$(function(){
// replace img tag in text
messagebody = messagebody.replace(/<img[^>]*>/g,'<span class="imgtag">you received an image</span>');
$('.kt-widget__items').append(messagebody);
})
.red {
border : 1px solid red;
}
.imgtag {
color: red;
font-weight:bold;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="kt-widget__items"></div>
推荐阅读
- python - YOLO 在 ONNX 运行时执行时返回不同的结果
- php - CURL (PHP) 返回服务器 IP 而不是 NGINX 监听 IP
- c# - 使用 Azure AD 进行身份验证,但使用 aspnetmembership 角色和声明进行授权
- xcode - 如何用数据填充 CoreData 存储
- javascript - 如何使用 js 在 HTML Select 选项之间切换
- python - MemoryError:无法为形状为 (108, 2260668) 且数据类型为 float64 的数组分配 1.82 GiB
- django - 我真的需要在 django 表单中同时容纳 GET 和 POST 请求格式吗?
- git - 仅将更改的文件合并到不相关的分支
- amazon-web-services - 将 DynamoDB 表从预置吞吐量大规模更改为按需吞吐量
- swiftui - iOS 15:导航链接再次弹出