Javascript 无法使用数组读取null的属性
我试图改变已经存在但被隐藏的元素类。这个问题是每当执行代码时都会引发null异常。什么都试过了,但似乎都不知道出了什么问题Javascript 无法使用数组读取null的属性,javascript,html,arrays,string,loops,Javascript,Html,Arrays,String,Loops,我试图改变已经存在但被隐藏的元素类。这个问题是每当执行代码时都会引发null异常。什么都试过了,但似乎都不知道出了什么问题 function changeMenu(code) { var i, id = ["'demo'", "'drill'", "'alert'"]; for (i = 0; i <= 2; i += 1) { if (document.getElementById(id[i]) !== null) { if (i
function changeMenu(code) {
var i, id = ["'demo'", "'drill'", "'alert'"];
for (i = 0; i <= 2; i += 1) {
if (document.getElementById(id[i]) !== null) {
if (i !== code) {
document.getElementById(id[i]).setAttribute('class', 'row hidden');
} else {
document.getElementById(id[i]).setAttribute('class', 'row');
}
} else {window.alert("error");}
}
}
功能更改菜单(代码){
变量i,id=[“'demo'”、“'drill'”、“'alert'”;
对于(i=0;i这里的问题是,您正在字符串中存储带有'
的ID,因此当您调用document.getElementById(“'demo')
时,它将找不到元素并返回null
将id
数组声明更改为:
var i, id = ["demo", "drill", "alert"];
脚本已加载到文档末尾,并且id也存在
是的,id存在,但上面没有”
,只需将其从阵列中删除即可。引号和测试中存在一些问题
我相信你真的想这么做:
var id=[“演示”、“演练”、“警报”];
功能更改菜单(代码){
对于(变量i=0;i
在数组声明中既有“and”,这是一个错误吗?@JacobGoh“”只是用来避免使用转义字符,因为getElementById接受引号中的元素id。您需要转义或取消转义上面代码中的任何内容吗?它接受字符串。而不是引号中的元素id
。字符串可以是“abc”或“abc”“.getElementById与此相同,不客气,这种情况经常发生,请记住。这种方法比我的初学者的方法有效得多,但是我在‘if(elm)’中有一个问题。如何将elm视为布尔值或null也被认为是错误的未定义、null、空、0都是错误的。”。