下面的代码在控制台中抛出一条错误消息,我不明白这个逻辑,因为在我的代码中,你可以看到我已经编写了if语句,应首先检查对象是否存在.
if (typeof document.getElementById("trbrok0").checked != "undefined") document.getElementById("trbrok0").checked = false;
if (typeof document.getElementById("trbrok1").checked != "undefined") document.getElementById("trbrok1").checked = false;
if (typeof document.getElementById("trbrok2").checked != "undefined") document.getElementById("trbrok2").checked = false;
if (typeof document.getElementById("trbrok3").checked != "undefined") document.getElementById("trbrok3").checked = false;Run Code Online (Sandbox Code Playgroud)
就像你可以看到我们应该首先检查对象是否存在,然后尝试更改对象中"checked"属性的值.但我总是收到以下错误消息:
Uncaught TypeError: Cannot read property 'checked' of null
Run Code Online (Sandbox Code Playgroud)
因为document.getElementById("trbrok0")返回一个DOM节点,如果它不存在则返回null.null没有属性checked所以document.getElementById("trbrok0").checked抛出错误.
修复程序是添加一个检查节点是否首先存在 if(document.getElementById("trbrok0")!= null){ }
| 归档时间: |
|
| 查看次数: |
65 次 |
| 最近记录: |