【发布时间】:2014-02-06 04:31:47
【问题描述】:
我本来打算用 JavaScript 做一个个人项目,直到遇到问题。我有一个带有 css“style.display=none”的“不可见”表,但是当我尝试使其“可见”时,我得到“未捕获的类型错误:无法读取 null 的属性'样式'”。
JavaScript 代码如下:
function attack(){
document.getElementById("list").style.display="block";
document.getElementById("message").innerHTML="";
}
function fire(){
var y=document.getElementById("message");
var x=document.getElementById("demo");
var z=document.getElementById("att");
x.innerHTML=3;
}
function disappear(){
document.getElementById("list").style.display="none";
document.getElementById("message").innerHTML="<center>Wild SlayerZach has appeared.</center>";
}
以下 HTML:
<body onload="disappear()">
<table border="1" >
<tr>
<td><img id="SHP" src="Hp/HPSlayerzach/hp2.png"/></td>
<td></td>
<td><img src="characters/slayerzach/slayerzach.png"/></td>
</tr>
<tr>
<td><p id="demo"></p></td>
<td ><img id="att" src="backgrounds/spacer1.png"/></td>
<td></td>
</tr>
<tr>
<td><img align="right" src="characters/fighterdan13/fighterDan13.gif"/></td>
<td></td>
<td><img id="FHP" src="hp/HPFighterdan13/hp1.png"/></td>
</tr>
<tr>
<td id="message" colspan="2" background="backgrounds/backgroundText.png">
<center><table border="0" id="list">
<tr>
<td style="font-family:verdana;font-size:15px"><center><a onclick="fire()">FIRE</a></center></td>
<td style="font-family:verdana;font-size:15px"><center>LIGHTNING</center></td>
</tr>
<tr>
<td style="font-family:verdana;font-size:15px"><center>WATER</center></td>
<td style="font-family:verdana;font-size:15px"><center>EARTH</center></td>
</tr>
</table></center>
</td>
<td>
<center><table border="0" background="backgrounds/backgroundmenu.png">
<tr>
<td><button id="butAtt" onclick="attack()">Attack</button></td>
<td><button id="butItems" disabled>Items</button></td>
</tr>
<tr>
<td colspan="2"><center><button id="butRun" style="width:110px; height:25px;" disabled>Run</button><center></td>
</tr>
</table></center>
</td>
</tr>
</table>
</body>
【问题讨论】:
-
该错误表明
document.getElementById("list")没有返回元素,而是返回一个空值。你能做一个小提琴/演示吗?如果元素以该 ID 存在,应该没问题,所以我不会立即看到问题 -
只有当我运行它时,
onload才有效。所以我的桌子是“不可见的”,但是当点击我的“攻击”按钮时,就会出现错误。 -
我认为错误在于 document.getElementById("message").innerHTML="";
-
您的代码中缺少元素“消息”
-
它在里面。它就在身体下方。
标签: javascript html css