Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法使用数组读取null的属性_Javascript_Html_Arrays_String_Loops - Fatal编程技术网

Javascript 无法使用数组读取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

我试图改变已经存在但被隐藏的元素类。这个问题是每当执行代码时都会引发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 !== 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都是错误的。”。