如何用JavaScript仅移除图片的src属性而非删除整个图片?
解决思路:移除图片src属性而非删除元素
我懂你遇到的问题了——你只是想清空图片的src属性,保留<img>元素本身,这样后续重新上传时还能找到这个元素来赋值。但你之前用的remove()方法是直接删除整个DOM元素,这就导致后续操作找不到图片标签,自然失败了。
正确的实现代码
你只需要把remove()替换成移除属性的方法就行,有两种常用方式:
- 完全移除src属性:使用
removeAttr()方法,它会彻底把src属性从img标签中删除
$(this).parent().find('img').not(this).removeAttr('src');
- 将src设为空字符串:如果只是想让图片不显示,但保留src属性(值为空),可以用
attr()方法赋值为空
$(this).parent().find('img').not(this).attr('src', '');
为什么之前的代码失效?
remove()是jQuery中删除整个DOM元素的方法,执行后对应的<img>标签会从DOM树中被移除,后续你再想操作这个图片元素时,自然找不到它了。而我们的目标是修改元素属性,不是删除元素本身,所以用属性操作方法才是正确的选择。
这两种方法都能保留<img>元素在DOM中,后续重新上传时,你可以直接给这个元素重新设置src属性即可。
内容的提问来源于stack exchange,提问作者yll
相关产品推荐
相关产品推荐

