无法使用jQuery删除img的属性

时间:2019-01-08 04:21:01

标签: javascript jquery html

在发送到服务器之前,我有一个要编辑的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的结果

enter image description here

编辑1:我做了一个$content的console.log,它下面也是$img的console.log

enter image description here

1 个答案:

答案 0 :(得分:1)

您的post.content包含多个节点。因此,当jquery解析它时,它将返回多个<p>节点的数组。

然后最后一个post.content = $content.html();仅包含第一个节点的内容。

尝试将整个post.content包裹在<div>中,如下所示:

const $content = $("<div>").html(post.content);

在此处查看完整代码:https://jsfiddle.net/vzxq0ckf/1/