Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/446.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-getElementByID-Error_Javascript - Fatal编程技术网

Javascript-getElementByID-Error

Javascript-getElementByID-Error,javascript,Javascript,我在Javascript中收到此错误消息 无法获取未定义或空引用的属性“style” document.getElementById('BS2').style.display='block'; 发生了什么,有时元素ID没有显示。是否有方法检查元素是否存在,然后执行此操作,否则,转到下一行代码 function showb() { if(document.getElementById('BS1').style.display=='none') { document.

我在Javascript中收到此错误消息

无法获取未定义或空引用的属性“style”

document.getElementById('BS2').style.display='block';
发生了什么,有时元素ID没有显示。是否有方法检查元素是否存在,然后执行此操作,否则,转到下一行代码

 function showb() { 
    if(document.getElementById('BS1').style.display=='none') { 
        document.getElementById('BS1').style.display='block'; 
        document.getElementById('BS2').style.display='block'; 
        document.getElementById('BS3').style.display='block'; 
        document.getElementById('BS4').style.display='block'; 
    } 
    return false;
 } 
有时BS1正在显示,BS3正在显示,BS4。。。等等。

document.getElementById()返回的对象与其他对象一样。您可以将其分配给变量并检查变量的空值:

var bs1 = document.getElementById('BS1');

if (bs1) {
  .. do stuff if bs1 is present
} else {
  .. do stuff if bs1 is not there
}

正如pointy在他的评论中所说,在尝试读取其属性之前,您应该检查是否存在具有所需ID的元素。您可以使用如下代码:

var element = document.getElementById('BS2'); // or any other ID
if (element) { // if no element is found, this evaluates as a logical false.
    element.style.display='block';
}

在变量中获取元素还有一个优点,那就是代码更具可读性。由于您多次使用它,所以可以创建一个函数来封装该逻辑。祝你好运

如果属性样式没有被修改,则表示它只是(“”)


函数showb(){
if(document.getElementById('BS1').style.display){
document.getElementById('BS1').style.display='block';
document.getElementById('BS2').style.display='block';
document.getElementById('BS3').style.display='block';
document.getElementById('BS4').style.display='block';
} 
返回false;
}

它将像那样被解决,因为(“”)是一个错误的值

难道你不能测试
getElementById()
的返回值,只有当它不是
null
时才能继续吗?你的DOM还没有加载。试着把JS代码放在正文的底部。我怎么能做到呢?你能给我举个例子吗?@volter9有时它甚至不会出现在背景中。不管它放在哪里。你能用
#BS1
发布你的HTML代码吗?那真的很有帮助。