js老是报错说未定义变量

baofen14787 2008-11-13 06:33:35

function menuSwitch(target,tag)
{
for(i=1; i <tag; i++)
{
document.getElementById(target+i).className="none";
}
}



<li class="nav_title" onclick="menuSwitch(a,2)">产品管理</li>


我是想单击一下该行,隐藏剩下的行!

如何实现!
...全文
490 22 打赏 收藏 转发到动态 举报
写回复
用AI写文章
22 条回复
切换为时间正序
请发表友善的回复…
发表回复
baofen14787 2008-11-14
  • 打赏
  • 举报
回复

function menuSwitch(target,tag)
{

for(i=1; i <=tag; i++)
{
if(document.getElementById(target+i).style.display=="none")
{
document.getElementById(target+i).style.display="block";
}
else
{
document.getElementById(target+i).style.display="none";
}
}
}


我已经解决了,不过还是要谢谢大家 呵呵
  • 打赏
  • 举报
回复

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<style>
.hi {
height:200px;
background-color:#990033;
}
.dd{
height:40px;
background-color:#396;
}
</style>
<script language="JavaScript" type="text/javascript">
var thisdiv
function go(i){
var thisdiv2=document.getElementById("s"+i);
if(thisdiv!=undefined && thisdiv!=thisdiv2)thisdiv.style.display = "none";

if(thisdiv2.style.display == "none"){
thisdiv2.style.display = "block";
thisdiv=thisdiv2;
}
else{
thisdiv2.style.display = "none";
}
}
</script>
</head><body>
<div class="dd" id="d1" onclick="go(1)">菜单1<br />
<div class="hi"style="display: none" id="s1">1111<br />111111<br />111<br />111</div>
</div>
<div class="dd" id="d2" onclick="go(2)">菜单2<br />
<div class="hi"style="display: none" id="s2">2222<br />22222<br />22<br />22</div>
</div>
<div class="dd" id="d3" onclick="go(3)">菜单3<br />
<div class="hi"style="display: none" id="s3">3333<br />33<br />333333</div>
</div>
<div class="dd" id="d4" onclick="go(4)">菜单4<br />
<div class="hi"style="display: none" id="s4">4444444<br />44444</div>
</div>
<div class="dd" id="d5" onclick="go(5)">菜单5<br />
<div class="hi"style="display: none" id="s5">5<br />55555<br />55<br />555</div>
</div>
</body>
</html>
baofen14787 2008-11-13
  • 打赏
  • 举报
回复
应该怎么写啊?
  • 打赏
  • 举报
回复
id也有重复的

我真晕

我看你先该学学HTML再说了
  • 打赏
  • 举报
回复
晕死,你这么运用我写的代码

我狂晕
baofen14787 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 chinmo 的回复:]
JScript codefunction menuSwitch(target,tag,obj)
{var id=obj.id;
for(i=1; i <tag; i++)
{var newid=target+i;
if(id==newid){
document.getElementById().className="block";}
else{document.getElementById().className="none";}
}
}




HTML code<li class="nav_title" onclick="menuSwitch('a',2,this)" id="a2">产品管理</li>
[/Quote]



<li id="t1" class="nav_title" >文章管理</li>
<li id="a1"><a href="#">添加文章</a></li>
<li id="a2"><a href="#">管理文章</a></li>
<li class="nav_title" id="" onclick="menuSwitch2('a',2,this)">产品管理</li>
<li id="b1"><a href="#">添加文章</a></li>
<li id="b2"><a href="#">添加文章</a></li>
<li class="nav_title" id="a2" onclick="menuSwitch2('a',2,this)" >产品管理</li>
<li><a href="#">添加文章</a></li>
<li><a href="#">添加文章</a></li>


代码是这样的。比如点击文章管理,然后添加文章,管理文章这2行就隐藏,再单击,就显示!
类似于后台的菜单导航!



好像还是不行啊!!
neo_yoho 2008-11-13
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 chinmo 的回复:]
引用 13 楼 neo_yoho 的回复:
把你原来的document.getElementById(target+i).style.display="none";
替换成
document.getElementById(target+i).style.display=document.getElementById(target+i).style.display=="none"?"":"none"
试试啊

这个肯定不行的
这个的话就只有一行是隐藏的了
[/Quote]
我只看LZ一会儿说
不行啊 我那代码只隐藏了行,但单击一下无法恢复!!!!!

help!
又不知道到底是不是隐藏了剩下的行!
后来又说
我想单击一下隐藏,再单击一下显示 如何实现啊
也不知道之前隐藏的对不对
搞得我有点莫名其妙了...
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 neo_yoho 的回复:]
把你原来的document.getElementById(target+i).style.display="none";
替换成
document.getElementById(target+i).style.display=document.getElementById(target+i).style.display=="none"?"":"none"
试试啊
[/Quote]
这个肯定不行的
这个的话就只有一行是隐藏的了
  • 打赏
  • 举报
回复
function menuSwitch(target,tag,obj)
{var id=obj.id;
for(i=1; i <tag; i++)
{var newid=target+i;
if(id==newid){
document.getElementById().className="block";}
else{document.getElementById().className="none";}
}
}


<li class="nav_title" onclick="menuSwitch('a',2,this)" id="a2">产品管理</li>
neo_yoho 2008-11-13
  • 打赏
  • 举报
回复
把你原来的document.getElementById(target+i).style.display="none";
替换成
document.getElementById(target+i).style.display=document.getElementById(target+i).style.display=="none"?"":"none"
试试啊
  • 打赏
  • 举报
回复
function menuSwitch(target,tag,obj)
{var id=obj.id;
for(i=1; i <tag; i++)
{var newid=target+i;
if(id==newid){
document.getElementById().className="block";}
else{document.getElementById().className="none";}
}
}




<li class="nav_title" onclick="menuSwitch(a,2,this)" id="a2">产品管理</li>
xianyi000 2008-11-13
  • 打赏
  • 举报
回复

function menuSwitch(target,tag)
{
for(i=1; i <tag; i++)
{
var obj=document.getElementById(target+i);
document.getElementById(target+i).style.display=obj.style.display=="none"?"block":"none"

}
}
baofen14787 2008-11-13
  • 打赏
  • 举报
回复
我是想单击一下,不是隐藏本行,是显示隐藏其他的行!!
leiru 2008-11-13
  • 打赏
  • 举报
回复
一般单击一下按钮改为“显示”
function menuSwitch(obj)
{
if(dodument.getElement("").value=="显示"){
dodument.getElement("").style.display=none;
}
}
  • 打赏
  • 举报
回复
JS:
function menuSwitch(obj)
{
obj.style.display=obj.style.display=="none"?"block":"none"
}


应用:
<li class="nav_title" onclick="menuSwitch(this)">产品管理 </li>
neo_yoho 2008-11-13
  • 打赏
  • 举报
回复
document.getElementById(target+i).style.display=document.getElementById(target+i).style.display=="none"?"":"none"
baofen14787 2008-11-13
  • 打赏
  • 举报
回复
我想单击一下隐藏,再单击一下显示 如何实现啊
rjzou2006 2008-11-13
  • 打赏
  • 举报
回复
<li class="nav_title" onclick="menuSwitch('a',2)">产品管理</li>
toury 2008-11-13
  • 打赏
  • 举报
回复
onclick="menuSwitch(a,2)中的a是怎么来的?这个就是未定义变量
baofen14787 2008-11-13
  • 打赏
  • 举报
回复
不行啊 我那代码只隐藏了行,但单击一下无法恢复!!!!!

help!
加载更多回复(2)

87,923

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧