javascript - 模态脚本中的“未捕获的类型错误:无法设置 null 的属性‘onclick’”
问题描述
我知道这已经被问了一千次,但我找不到解决我问题的现有帖子,所以我提前道歉。我仍然在学习所有这些,并且一直在测试一些东西来练习。在尝试为我正在处理的网站中的图像设置模式脚本时,我遇到了标题中的问题。
正如另一篇文章中所建议的那样,我尝试在“img.modal”函数之前放置一个“if (img)”语句。这清除了错误,但没有解决任何问题。
HTML
<img id="myImg" src="https://www.w3schools.com/howto/img_snow.jpg" alt="Snow" style="width:100%;max-width:300px" />
<div id="myModal" class="modal">
<span class="close">×</span>
<img class="modal-content" id="img01" src="https://www.w3schools.com/howto/img_snow.jpg" />
<div id="caption">Snow</div>
</div>
Javascript
var img = document.getElementById("myImg");
var modalImg = document.getElementById("img01");
var captionText = document.getElementById("caption");
img.onclick = function(){
modal.style.display = "block";
modalImg.src = this.src;
captionText.innerHTML = this.alt;
}
var span = document.getElementsByClassName("close")[0];
span.onclick = function() {
modal.style.display = "none";
}
单击缩略图 (myImg) 时,它应该会弹出一个包含放大图像 (img01) 的模式。但是当我点击图像时,什么也没有发生。如果您需要更多信息,请告诉我。
解决方案
因为,javascript 无法获取 id = 'myImg' 的元素原因在 html 中没有任何具有该 id 的元素让 img 为空
推荐阅读
- python - 从字典列表中提取新字典
- c# - 仅更新 Microsoft Dynamics 实体中的某些字段
- python - 使用 Keras 增强 CSV 文件数据集
- angular - 无法从离子和角度的 api http 调用中连接和获取详细信息
- cloud-foundry - 托管在 Cloud Foundry 中的 Cleardb 实例
- python - 我手动构建的梯度下降算法有什么问题?
- python - dash.exceptions.LayoutIsNotDefined:尝试为应用程序分配回调,但尚未分配 `layout` 属性。[Dash Plotly]
- internet-explorer - 如何将内容安全策略添加到 Microsoft Edge
- linux - 从源安装软件
- flutter - Flutter 可拖动小部件 - 始终在拖动时创建子项