Uncaught TypeError: Cannot set property 'className' of null when trying to execute script
Uncaught TypeError: Cannot set property 'className' of null when trying to execute script
我有一张图片 (id="image1") 和一个 "a" 标签 (id="image1_tb"),它就像一个开关,用于更改 class图片。
因为我要添加其他图像,所以我将 "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 开发控制台调用它时,没有任何反应。结果控制台输出了一个"Uncaught TypeError: Cannot set property 'className' of null"。如果我用实际图像 ID 手动替换 "id",它就可以工作。
我做错了什么?
更改 href 来自:
javascript:changeClass(image1)
收件人:
javascript:changeClass('image1')
javascript 中没有引号意味着您正在尝试引用一个变量。由于 image1 之前没有定义为变量,它是空的,document.getElementById(null) 也是空的!
我有一张图片 (id="image1") 和一个 "a" 标签 (id="image1_tb"),它就像一个开关,用于更改 class图片。 因为我要添加其他图像,所以我将 "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 开发控制台调用它时,没有任何反应。结果控制台输出了一个"Uncaught TypeError: Cannot set property 'className' of null"。如果我用实际图像 ID 手动替换 "id",它就可以工作。 我做错了什么?
更改 href 来自:
javascript:changeClass(image1)
收件人:
javascript:changeClass('image1')
javascript 中没有引号意味着您正在尝试引用一个变量。由于 image1 之前没有定义为变量,它是空的,document.getElementById(null) 也是空的!