我的div在form中,通过用 document.getElementById(id)在ff浏览器中获取对象为空。IE中一切正常。
代码如下:
前台代码: <div class="p_zone_mall_ctg">                <span class="p_zone_ctg_font">分类选择</span>
               <div class="p_zone_ctg"> <div class="select_ctg_left">选择商家种类</div>
<ul class="p_zone_ctg_right"> 
<li  id="inin1" class="ct"  onclick="javascript:doClick_inin2(this)"><a  href="javascript:;">全部商家</a></li> 
<li class="short_line1">|</li>  
<li  id="inin2"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">图书音像</a></li>
 <li  class="short_line1">|</li>  
<li  id="inin3"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">数码家电</a></li>
 <li  class="short_line1">|</li>  
<li  id="inin4"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">母婴玩具</a></li> <li  class="short_line1">|</li>  
<li  id="inin5"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">美容护肤</a></li>
 <li  class="short_line1">|</li>  
<li  id="inin6"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">日用百货</a></li> <li  class="short_line1">|</li> 
 <li  id="inin7"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">时尚办公</a></li> <li  class="short_line1">|</li>  
<li  id="inin8"  onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;">服饰</a></li> <li  class="short_line1">|</li>  
<li id="inin9"  onclick="javascript:doClick_inin2(this)"><a  href="javascript:;" >鲜花礼品</a></li>
<li class="more_image">
<input type="image" src="images/more_image.gif" name="button2" id="Image1" onclick="change_adv_list2();"/> </li> </ul></div>
<div id="BB" class="p_zone_ctg" style="display:none;"> 
<ul class="p_zone_ctg_right">
<li  class="short_line1">|</li>
<li id="inin10"   onclick="javascript:doClick_inin2(this)"><a  href="javascript:;" >旅行票务</a></li>
<li  class="short_line1">|</li>
<li id="inin11"   onclick="javascript:doClick_inin2(this)" ><a  href="javascript:;" >医疗保健</a></li>
<li  class="short_line1">|</li>
</ul>
</div>
             </div>
    <form id="form1" runat="server">
  <div class="p_zone_mall_photo" id="d_cons1"  style="display:block"> 
              <ul>
               <asp:Repeater ID="rpt_Product1" runat="server">
                <ItemTemplate>
                 <li><a href="#"><img src="<%# DataBinder.Eval(Container.DataItem,"smallpic") %>" width="142" height="64" alt="" title="" /></a><p><%# DataBinder.Eval(Container.DataItem,"shopname") %> <span class="font_color"><%# DataBinder.Eval(Container.DataItem,"bigRete") %> </span></p>
                    </li>
                </ItemTemplate> 
          </asp:Repeater>   
               
                </ul>
  </div> <div class="p_zone_mall_photo" id="d_cons2"> 
<ul>
              <asp:Repeater ID="rpt_Product2" runat="server">
              <ItemTemplate>
                 <li><a href="#"><img src="<%# DataBinder.Eval(Container.DataItem,"smallpic") %>" width="142" height="64" alt="" title="" /></a><p><%# DataBinder.Eval(Container.DataItem,"shopname") %> <span class="font_color"><%# DataBinder.Eval(Container.DataItem,"bigRete") %> </span></p>
                    </li>
                 </ItemTemplate> 
                 </asp:Repeater>
                </ul>
</div>
<div class="p_zone_mall_photo" id="d_cons3"> 
              <ul>
                 <asp:Repeater ID="rpt_Product3" runat="server">
              <ItemTemplate>
                 <li><a href="#"><img src="<%# DataBinder.Eval(Container.DataItem,"smallpic") %>" width="142" height="64" alt="" title="" /></a><p><%# DataBinder.Eval(Container.DataItem,"shopname") %> | 最高返<span class="font_color"><%# DataBinder.Eval(Container.DataItem,"bigRete") %> </span></p>
                    </li>
                 </ItemTemplate> 
                 </asp:Repeater>
                </ul>
</div>
</form>
javascript代码:   function doClick_inin2(o){
         o.className="ct";
         var j;
         var id;
         var e;       
         var text; 
         for(var i=1;i<=11;i++){
           id ="inin"+i;
           text="d_cons"+i;         
           j = document.getElementById(id);
           e = document.getElementById(text);
           if(id != o.id){                  
             j.className="";
             e.style.display="none";
           }else{
         e.style.display= "block";
           }
         }
 function change_adv_list2(){
        if(document.getElementById('BB').style.display == "none"){ 
             document.getElementById('BB').style.display = "block";
          }
         else 
             document.getElementById('BB').style.display = "none";
          } 
 
我先介绍一下。在form1中,有三个div,分别为d_cons1,d_cons2,d_cons3.页面加载的时候,默认显示出d_cons1的数据,点击其它的div的时候,相当于一个切换div,显示出当前div中的数据。
现在的问题是,调用doClick_inin2()方法时,  e = document.getElementById(text);  e的值一直为空.在Ie中测试没有问题。在ff中就出现这个问题了。
我尝试把form去掉后,在ff是正常的。但是去掉form的话,控件就无法运行了。
还有个奇怪的问题,在ff浏览器中,div有些没有显示。我看了一下页面源代码,只显示出d_cons1,d_cons3.....这样为单数的。d_cons2 这些为双数据div都没有读出来。太郁闷了,困扰中........求高手帮忙啊,急啊。

解决方案 »

  1.   

    如果是嵌套问题的话,那么form去掉为什么就可以了呀?
      

  2.   

    是你没贴全还是就是没有!你的两个JS Function都少了最外层的}
      function doClick_inin2(o){
            o.className="ct";
            var j;
            var id;
            var e;      
            var text;
            for(var i=1;i <=11;i++){
              id ="inin"+i;
              text="d_cons"+i;       
              j = document.getElementById(id);
              e = document.getElementById(text);
              if(id != o.id){                
              j.className="";
              e.style.display="none";
              }else{
            e.style.display= "block";
              }
            }
    }  '这个没有      
      

  3.   

    在ff浏览器中,div有些没有显示。我看了一下页面源代码,只显示出d_cons1,d_cons3.....这样为单数的。d_cons2 这些为双数据div都没有读出来。
    re:
    这样看是你的ASPX有问题!你先把JS都拿掉在FF看正常不
      

  4.   

    就算是JS错误也不应该影响HTML结构的加载呀
      

  5.   


    我把页面上的js都拿掉了,显示还是一样,只显示出d_cons1,d_cons3.....这样为单数的。d_cons2 这些为双数据div都没有读出来。而且我没有用ajax来取数据,这些div是在页面写死了的,尽然也读不出来........而且是只显示单数不显示双数,真晕
      

  6.   

    问题会不会出在form这里了..有几个页面没用到form,js的执行都是正常的,代码几乎相同的,放在有form的页面就不行了...
      

  7.   

    如果是aspx有问题的话,那么在IE里面显示肯定也会有问题的是吧
      

  8.   

        FF  不支持 document.getElementById("id");  请使用 document.all.id.value   进行取值 
      

  9.   


      FF 和 IE 遵循的 JS 标准 都不同, 所以 IE 很多 特色 函数, FF 并不支持。。    LZ  花点时间  在网上 找找这方面的资料 吧
      

  10.   

    d_cons 这个ID前缀的元素,你提供的一共只有3个,但是你要循环11次肯定找不到4开始的元素了
      

  11.   

    document.getElementById("id");不行试试这个document.getElementByName("name");呗,不同浏览器js标准有差异!
      

  12.   

    用jquery得了。不然你还要判断浏览器类型