【问题标题】:Uncaught TypeError: Cannot set property 'className' of null when trying to execute script未捕获的类型错误:尝试执行脚本时无法将属性“className”设置为 null
【发布时间】:2016-08-24 21:41:57
【问题描述】:

我有一个图像 (id="image1") 和一个 "a" 标记 (id="image1_tb"),它的作用就像一个用于更改图像类别的开关。 由于我要添加其他图像,因此我将“a”标签的 href 属性设置为“javascript:changeClass(image1)”并创建了一个如下所示的 javascript scipt:

function changeClass(id) {
if (document.getElementById(id).className == 'swb') {
document.getElementById(id).className = 'swthb';
document.getElementById(id+'_tb').innerHTML = 'Class 1'
} else {
document.getElementById(id).className = 'swb';
document.getElementById(id+'_tb').innerHTML = 'Class 2'
}
}

但是当我尝试通过单击文本或通过 Chrome 开发控制台调用它时,没有任何反应。事实证明,控制台输出“未捕获的 TypeError:无法设置属性 'className' of null”。如果我用实际的图像 id 手动替换“id”,它就可以工作。 我做错了什么?

【问题讨论】:

  • @blex 其实我就知道,我写代码的时候打错了。

标签: javascript html function call


【解决方案1】:

从以下位置更改href:

javascript:changeClass(image1)

收件人:

javascript:changeClass('image1')

在 javascript 中没有引号意味着您正在尝试引用一个变量。由于 image1 之前没有定义为变量,所以它为 null,document.getElementById(null) 也为 null!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-06-01
    • 2014-06-26
    • 2018-01-03
    • 2014-02-07
    • 2014-03-06
    • 1970-01-01
    相关资源
    最近更新 更多