记一次菜鸡的解决拿到数据如果有图片变成[图片]显示问题

本文介绍了一种在Vue项目中处理后端返回的包含HTML标签字符串的方法。通过两种不同的方案实现对图片标签的替换:一是利用Vue的ref特性操作DOM;二是使用正则表达式进行字符串替换。最终实现了在页面上以'[图片]...'的形式展示。

1:先展示一下成果

2:有两种思路去解决 因为是vue项目 也是才开始写vue项目,似乎思路还没有转换过来,一开始的时候 采用的ref去处理的 后端返回的数据是这样的 str=< p><img ="https://2018/8/15/1653ba3a901850" width="226" height="124" title="img_zuoyeceshi.png"/></p>

2-1:方法1 给父元素添加ref

let exl_examDescP = this.$refs.exl_examDescP;
for(let item of exl_examDescP){
    if(item.firstElementChild.getElementsByTagName("img").length > 0){
        console.log(111);
        item.firstElementChild.append("[图片]...");             
    }
}
复制代码

v-html去编译成html; 但是在vue里mounted里拿不到refs,一直是undefined,后来在updated里面测试的效果是欧克的,但是写在updated里太耗费性能了,就开始思考另外一个方法; 方法二:正则匹配```

let imgReg = /<img[^>]*src[=\"\'\s]+[^\.]*\/([^\.]+)\.[^\"\']+[\"\']?[^>]*>/gi;
for(let item of list){
    item.content = item.content.replace(imgReg, "[图片]...");
}
this.workList = list;
复制代码

在template里v-html=“item.content”,这样就欧克拉。

转载于:https://juejin.im/post/5b739dade51d45662434b2be

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值