使用 setAttribute 修改图片 src 属性时报错的解决方案

使用 setattribute 修改图片 src 属性时报错的解决方案

正如摘要所述,本文旨在解决在使用 JavaScript 修改 HTML 图片元素的 src 属性时遇到的 “setAttribute cannot read properties of null” 错误。该错误通常发生在尝试在 DOM 加载完成之前访问和操作 DOM 元素时。以下将详细介绍问题的原因以及如何通过代码调整来解决此问题。

问题分析

“setAttribute cannot read properties of null” 错误表明,在尝试调用 setAttribute 方法时,目标元素(在本例中是 id 为 “banner” 的 使用 setAttribute 修改图片 src 属性时报错的解决方案 元素)为 null。这通常意味着 JavaScript 代码在 HTML 元素被完全加载之前就执行了,导致 document.getElementById(“banner”) 或 $(“#banner”) 无法找到该元素,从而返回 null。

解决方案

为了确保在 DOM 完全加载后再执行 JavaScript 代码,可以使用以下两种方法:

1. 使用 jQuery 的 $(function() { … });

jQuery 提供了一个便捷的方法来确保代码在 DOM 加载完成后执行。将代码包裹在 $(function() { … }); 中即可:

$(function() {  flagDictionary = {    1 : "assets/WCUFOD.png",    2 : "assets/lesbians.svg",    3 : "assets/Gay.svg",    4 : "assets/bisexual.png",    5 : "assets/intersex.jpg",    6 : "assets/asexual.png",  }  const time = new Date();  const day = time.getDay()  let mainBanner = document.getElementById("banner");  mainBanner.setAttribute("src", flagDictionary[1]);});

2. 使用原生 JavaScript 的 DOMContentLoaded 事件

原生 JavaScript 提供了 DOMContentLoaded 事件,可以在 DOM 加载完成后触发。可以使用以下代码来实现相同的功能:

document.addEventListener('DOMContentLoaded', function() {  flagDictionary = {    1 : "assets/WCUFOD.png",    2 : "assets/lesbians.svg",    3 : "assets/Gay.svg",    4 : "assets/bisexual.png",    5 : "assets/intersex.jpg",    6 : "assets/asexual.png",  }  const time = new Date();  const day = time.getDay()  let mainBanner = document.getElementById("banner");  mainBanner.setAttribute("src", flagDictionary[1]);});

3. 调整 script 标签的位置

将 标签放在

以上就是使用 setAttribute 修改图片 src 属性时报错的解决方案的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1582817.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月22日 23:29:31
下一篇 2025年12月22日 23:29:43

相关推荐

发表回复

登录后才能评论
关注微信