在发送到服务器之前,我有一个要编辑的HTML字符串。 html字符串包含一个或多个img元素。在这些图像元素中,我想删除src
属性,它是一个base64字符串。
不幸的是,似乎使用下面的代码可以删除整个图像元素。有人可以看到我做错了吗?
post.content是html字符串。我想在此字符串中找到图像元素,然后为每个图像更改其src
属性
// Remove the base 64 src
const $content = $(post.content);
const $img = $content.find('img');
$img.each(function(i) {
$(this).attr('src', 'dummy');
});
post.content = $content.html();
console.log(post.content);
使用上述jQuery时post.content日志的结果
<br>
当我不使用上面的jquery,普通的html字符串和具有base64 src的img时,post.content的结果
编辑1:我做了一个$content
的console.log,它下面也是$img
的console.log
答案 0 :(得分:1)
您的post.content
包含多个节点。因此,当jquery解析它时,它将返回多个<p>
节点的数组。
然后最后一个post.content = $content.html();
仅包含第一个节点的内容。
尝试将整个post.content包裹在<div>
中,如下所示:
const $content = $("<div>").html(post.content);
在此处查看完整代码:https://jsfiddle.net/vzxq0ckf/1/