我的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都没有读出来。太郁闷了,困扰中........求高手帮忙啊,急啊。
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";
}
}
} '这个没有
re:
这样看是你的ASPX有问题!你先把JS都拿掉在FF看正常不
我把页面上的js都拿掉了,显示还是一样,只显示出d_cons1,d_cons3.....这样为单数的。d_cons2 这些为双数据div都没有读出来。而且我没有用ajax来取数据,这些div是在页面写死了的,尽然也读不出来........而且是只显示单数不显示双数,真晕
FF 和 IE 遵循的 JS 标准 都不同, 所以 IE 很多 特色 函数, FF 并不支持。。 LZ 花点时间 在网上 找找这方面的资料 吧