现在有8项,设为固定8次循环时效果能实现,想改成循环次数根据item的多少来变动,而不是确定的一个数,或者如何改能更好的控制?
<script language="javascript">
 function turnit(obj_name)
 { 
  var ss=document.getElementById(obj_name);
var dd="item";
   if (ss.className=="none") 
{
for(i=1;i<=8;i++)
{
if(dd+i=="")
{}
else
{
document.getElementById("item"+ i).className="none";
}
}
ss.className="nomorl";
   }
   else
{
ss.className="none";
}
  }
</script>
                  <!--头部-->
                         <div class="menu1" onclick="turnit('item1')"><a href="#">内科</a></div>
                            <ul class="nomorl" id="item1">
                                <li><a href="#" target="_self">呼吸内科</a></li>
                                <li><a href="#" target="_self">心血管内科</a></li>
                                <li><a href="#" target="_self">消化内科</a></li>
                                <li><a href="#" target="_self">肾内科</a></li>
                                <li><a href="#" target="_self">神经内科</a></li>
                                <li><a href="#" target="_self">内分泌科</a></li>
                                <li><a href="#" target="_self">血液科</a></li>
                                <li><a href="#" target="_self">风湿内科</a></li>
                            </ul>
<div class="clear"></div>
                        <!--四肢--> 
                            <div class="menu1" onclick="turnit('item2')"><a href="#">外科</a></div>
                            <ul class="none" id="item2">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item3')"><a href="#">肿瘤科</a></div>
                            <ul class="none" id="item3">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item4')"><a href="#">男科</a></div>
                            <ul class="none" id="item4">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item5')"><a href="#">妇科</a></div>
                            <ul class="none" id="item5">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item6')"><a href="#">儿科</a></div>
                            <ul class="none" id="item6">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item7')"><a href="#">五官科</a></div>
                            <ul class="none" id="item7">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                            
                            <div class="menu1" onclick="turnit('item8')"><a href="#">传染科</a></div>
                            <ul class="none" id="item8">
                                <li><a href="#" target="_self">上肢</a></li>
                                <li><a href="#" target="_self">下肢</a></li>
                            </ul>
                    

解决方案 »

  1.   

    可以获得所有的DIV,然后判断id属性,indexOf(item)  大于0就执行操作
      

  2.   

    var nodes=document.getElementsByTagName("UL");
    alert(nodes.length);nodes.length就是你要循环的次数
      

  3.   

    var allUl=document.getELementsByTagName("UL");
    for(i=1;i<=allUl.length;i++){
    if(allUl[i].id.indexOf("item")<0)
    continue;
    allUl[i].className="none";
    }
    for那里的代码改这样
      

  4.   

    不止这个地方有UL啊,其它地方也有,所以要根据ID判断,就是不知道怎么判断
      

  5.   

    LZ可以在最外边套一层Div 
    <div id="outer">
       <!-- 你的html代码 ...-->
           
    </div>
    判断item的多少的js代码
    document.getElementById('outer').getElementsByTagName('ul').length
      

  6.   

    6楼的方法或者用下面的方式例如:
    <div id="test">
    <ul>
    只取id="test"的div嵌套的所有ul
    </ul>
    </div>那么可以这样document.getElementById("test").getElementsByTagName("ul")
      

  7.   

    <script language="javascript">

       function turnit(obj_name)
       { 
      var ss=document.getElementById(obj_name);
      var nodes=document.getElementsByTagName("UL");
      var s=document.getElementById('outer').getElementsByTagName('ul');
     
     for(i=1;i<=nodes.length;i++){
    if(nodes[i].id.indexOf("item")<0)
    continue;
    else
    s++;

     }
      
      
      if (ss.className=="none") 
      {
      
      for(i=1;i<=s.length;i++)
      {
      document.getElementById("item"+ i).className="none";
      }
      ss.className="nomorl";
      }
      else
      {
      ss.className="none";
      }
    }

    </script>
    我按照六楼的方法加进去,没反应,我把它修改了下,测试后发现s++后面加一个alert(s)循环次数是对的,可加在循环体外面警告框也没了,不知道是什么原因
      

  8.   

    我是要你把我写的for 替换你原来写的for