无法读取 null 的样式属性(即使代码行位于“if”内部,询问是否定义了变量

Cannot read style properties of null (even though the line of code is inside of an "if" asking is the variable is defined

提问人:Vicente Chomali 提问时间:2/25/2023 更新时间:2/25/2023 访问量:100

问:

在我的网站中,有一个特定的选项卡,只为特定用户加载。

<?php if($User["UID"] == $SpaceCreatorUID){ echo "";?> <button class="button-container" id="qr-button">Mi QR<div id="qr-indicator" class="indicator"></div> </button> <?php echo ""; } ?>

没什么特别的;完美工作。但是,当选项卡没有为用户加载时(这是完美的),我的 JS 代码在以下行 (83) 停止工作:

qrIndicator.style.display = "none";

完全有意义,因为我将尝试为 null 对象定义样式属性。因此,我进行了以下更改(第 83 行):

if (typeof qrIndicator !== 'undefined'){qrIndicator.style.display = "none";};

但是,它不断抛出相同的错误:无法读取 null 的属性(读取“style”)。我缺少或不理解什么?

我将以下行 (14) 留给上下文:

try{var qrIndicator = document.getElementById("qr-indicator");}finally{};

是什么原因导致了这个问题?

javascript php if 语句 null 类型

评论

0赞 Teemu 2/25/2023
您的支票通过了 beacause 。typeof null === 'object'
0赞 Vicente Chomali 2/25/2023
我该如何解决这个问题?(我是新手)。

答:

0赞 Chris Haas 2/25/2023 #1

不需要一个不会抛出的,它会返回,这很容易测试。try/catchnull

var qrIndicator = document.getElementById("qr-indicator");

if (qrIndicator){
  qrIndicator.style.display = "none";
}