Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/74.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 document.getElementById在document.write之后的现有元素上返回null_Javascript_Html_Dom - Fatal编程技术网

Javascript document.getElementById在document.write之后的现有元素上返回null

Javascript document.getElementById在document.write之后的现有元素上返回null,javascript,html,dom,Javascript,Html,Dom,以下是完整的错误消息: mlg.html:41未捕获类型错误:无法将属性“innerHTML”设置为null 在ml(mlg.html:41) 在HTMLButtonElement.onclick上(mlg.html:9) 我在做一个疯狂的libs游戏,我只是做了一个快速的测试来发现bug,然后我偶然发现了这个问题。代码如下: 疯狂的Libs! 函数ml(){ var x=数学地板((数学随机()*10)+1); //疯狂解放1 如果(x==1 | | 2){ 文件。编写(“测试1”);

以下是完整的错误消息:

mlg.html:41未捕获类型错误:无法将属性“innerHTML”设置为null
在ml(mlg.html:41)
在HTMLButtonElement.onclick上(mlg.html:9)
我在做一个疯狂的libs游戏,我只是做了一个快速的测试来发现bug,然后我偶然发现了这个问题。代码如下:


疯狂的Libs!

函数ml(){ var x=数学地板((数学随机()*10)+1); //疯狂解放1 如果(x==1 | | 2){ 文件。编写(“测试1”); } //疯狂解放2 如果(x==3 | | 4){ 文件。编写(“测试2”); } //疯狂解放3 如果(x==5 | | 6){ 文件。编写(“测试3”); } //疯狂解放4 如果(x==7 | | 8){ 文件。编写(“测试4”); } //疯狂解放5 如果(x==9 | | 10){ 文件。编写(“测试5”); } document.getElementById(“display”).innerHTML=x; }
不要使用它,它是安全的。它用
test1
或一些类似的字符串覆盖整个页面。因此,当
document.getElementById(“display”).innerHTML=x时,ID为
display
的元素将不再存在,并且
文档。getElementById(“display”)
将计算为
null

如果要测试
If
语句,请改用。只需打开(在大多数浏览器中为F12),您就会在那里看到消息

说到你的
if
语句:
if(test==1 | | 2)
将始终计算为
true
,因为
2
是真实的。那不是你想要的。您需要的是
if(test==1 | | test==2)


备选方案:
if([1,2].includes(test))
if([1,2].indexOf(test)>=0)
()。

问题是
文档。write
覆盖整个页面的内容,因此当到达该语句时,不会有
\display
元素。另外,
x==1 | | 2
应该是
x==1 | | x==2
。相关: