javaScript 哪里错了?

来源:百度知道 编辑:UC知道 时间:2024/05/26 09:55:06
var ShowId="";
function DivMenu(i){
var id=document.getElementById(i);
if(ShowId!="")
document.getElementById(ShowId).style.display='none';
if(id.style.display!='none'){
id.style.display='none';
}
else{
id.style.display='block';
ShowId=id;
}
}

<div>
<div onclick="DivMenu('M1')">dghjdsfgjdg</div>
<div id="M1" style="display:none;">sfgjsj</div>
</div>
<div>
<div onclick="DivMenu('M2')">dfgjdfjhdgj</div>
<div id="M2" style="display:none;">dfgjdj</div>
</div>
<div>
<div onclick="DivMenu('M3')">dfjhdfgjdfgj</div>
<div id="

请注意你这一句:
document.getElementById(ShowId).style.display='none';
你应该知道document.getElementById()函数的参数应该是一个字符串,而ShowId是什么呢?在这里:
ShowId=id;
而赋值给ShowId的id又是什么呢?
var id=document.getElementById(i);
而ShowId是一个全局变量,你第二次点击div时ShowId已经是一个dom元素了。你说这样能不错误吗。


document.getElementById(ShowId).style.display='none';
改成
ShowId.style.display='none';