问答详情
源自:10-1 编程挑战

10-1编程挑战失败,我这段代码的document.getElementById() 获取不到doc对象

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>实践题 - 选项卡</title>
    <style type="text/css">
     /* CSS样式制作 */  
    #container{ width:300px;height:200px;
        text-align:center;padding-top:0px;position:absolute;
    }
    li{display:block;border-top:1px solid #2f2f2f;float:left;
       height:30px; width:60px; padding-top:10px;border-left:1px solid #2f2f2f;
       border-right:1px solid #2f2f2f;
       margin-left:10px;
    }
    ul{
        position:absolute;px;top:0px;padding-top:0px;margin-top:0px;
    }
    .bottom{
        border-top:1px solid red;height:157px;width:100%;position:absolute;
        top:41px;
    }
    .top{
        border-top:1px solid red;
    }
    </style>
    <script type="text/javascript">
         
    // JS实现选项卡切换
     var container = document.getElementById("container");
     alert(container.nodeType);
    </script>
 
</head>
<body>
<!-- HTML页面布局 -->

<div id="container">
    <ul>
        <li >
            房产
        </li>
        <li>
            家具
        </li>
        <li>
            二手车
        </li>
    </ul>
    <div>
        <p>275万购昌平邻铁三居 总价20万买一居
    200万内购五环三居 140万安家东三环
    北京首现零首付楼盘 53万购东5环50平
    京楼盘直降5000 中信府 公园楼王现房</p>
    </div>
    <div style="display:none">
        <p>40平出租屋大改造 美少女的混搭小窝
     经典清新简欧爱家 90平老房焕发新生
     新中式的酷色温情 66平撞色活泼家居
     瓷砖就像选好老婆 卫生间烟道的设计</p>
    </div>
    <div style="display:none">
        <p>通州豪华3居260万 二环稀缺2居250w甩
     西3环通透2居290万 130万2居限量抢购
     黄城根小学学区仅260万 121平70万抛!
     独家别墅280万 苏州桥2居优惠价248万</p>
    </div>
</div>
 
</body>
</html>


提问者:慕慕7454464 2016-11-04 11:22

个回答

  • stone310
    2016-11-06 08:04:11
    已采纳

    页面从上往下在加载,不放下面,加载到js的时候,dom还没加载呢,自然没法获取

  • 慕慕7454464
    2016-11-04 17:29:30

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="UTF-8">
        <title>实践题 - 选项卡</title>
        <style type="text/css">
         /* CSS样式制作 */  
        #container{ width:300px;height:200px;
            text-align:center;padding-top:0px;position:absolute;
        }
        li{display:block;border-top:1px solid #2f2f2f;float:left;
           height:30px; width:60px; padding-top:10px;border-left:1px solid #2f2f2f;
           border-right:1px solid #2f2f2f;
           margin-left:10px;
        }
        ul{
            position:absolute;px;top:0px;padding-top:0px;margin-top:0px;
        }
        .bottom{
            border-top:1px solid red;height:157px;width:100%;position:absolute;
            top:41px;
        }
        .top{
            border-top:1px solid red;
        }
        </style>
        
     
    </head>
    <body>
    <!-- HTML页面布局 -->
    
    <div id="container">
        <ul>
            <li id="1" style="border:1px solid red;" >
                房产
            </li>
            <li id="2">
                家具
            </li>
            <li id="3">
                二手车
            </li>
        </ul>
        <div id="div1" >
            <p>275万购昌平邻铁三居 总价20万买一居
        200万内购五环三居 140万安家东三环
        北京首现零首付楼盘 53万购东5环50平
        京楼盘直降5000 中信府 公园楼王现房</p>
        </div>
        <div style="display:none" id="div2">
            <p>40平出租屋大改造 美少女的混搭小窝
         经典清新简欧爱家 90平老房焕发新生
         新中式的酷色温情 66平撞色活泼家居
         瓷砖就像选好老婆 卫生间烟道的设计</p>
        </div>
        <div style="display:none" id="div3">
            <p>通州豪华3居260万 二环稀缺2居250w甩
         西3环通透2居290万 130万2居限量抢购
         黄城根小学学区仅260万 121平70万抛!
         独家别墅280万 苏州桥2居优惠价248万</p>
        </div>
    </div>
      <script type="text/javascript">
             
        // JS实现选项卡切换
         var container = document.getElementsByTagName("li");
         for(var i =0;i<container.length;i++){
             cssChange(container[i]);
         }
         function cssChange(li){
          var lis = document.getElementsByTagName("li");
             li.onclick=function(){
              for(var i=0;i<lis.length;i++){
              if(lis[i].id==li.id){
              lis[i].style.borderColor="red";
              }else{
              lis[i].style.borderColor="#2f2f2f";
              }
              
              }
                 
                 var num = li.id;
                 var div = document.getElementById("div"+num);
                 hiddenDiv(div);
    
             }
         }
         
         
         function hiddenDiv(div){
          var div1 = document.getElementById("div1")
          var div2 = document.getElementById("div2");
          var div3 = document.getElementById("div3");
          if(div1.id == div.id){
          div1.style.display="block";
          div2.style.display="none";
          div3.style.display="none";
          }else if(div2.id == div.id){
          div1.style.display="none";
          div2.style.display="block";
          div3.style.display="none";
          }else if(div3.id == div.id){
          div1.style.display="none";
          div2.style.display="none";
          div3.style.display="block";
          }
         }
        </script>
    </body>
    </html>

    最后功能已经实现   具体代码如上   提供给各位参考   具体 为什么 <script></script>代码块  为什么要放在下面  

    才能获取到 代码块     还需要知道的大神  回复下 谢谢

  • 慕慕7454464
    2016-11-04 11:30:06

    刚刚发现 把 

    <script type="text/javascript">

              

        // JS实现选项卡切换

         var container = document.getElementById("container");

         alert(container.nodeType);

        </script>

    这部分代码 放到最下面 就可行              为什么

  • 慕慕7454464
    2016-11-04 11:25:03

    通过document.getElementById("container")  获取不到 doc对象  不知道为什么 有高人帮忙看看吗     非常感谢