<script type="text/javascript">
 function closeLayer(shu)
  {
     document.getElementById("test_" + shu).className = "tang";
  }
         
 function displayLayer(shu1)
 {
   document.getElementById("test_" + shu1).className = "tang1";
 }
</script><asp:Repeater ID="Dlist" runat="server" OnItemDataBound="D_ItemDataBound">
    <HeaderTemplate>
    <ul>
    </HeaderTemplate>
    <ItemTemplate>
     <li class="case2_li_img" onclick="displayLayer(<%# Getxu1()%>);"><img  src="active/<%#Eval("B_tu")%>" border="0" style="cursor:pointer;"   /></li>
     <asp:Repeater ID="Tulist" runat="server">
     <ItemTemplate>
        <div class="tang" id="test_<%# Getxu2()%>" >
        <div class="close"><img src="images/close.gif" onclick="closeLayer(<%# Getxu3()%>);" /></div>
        <div class="ta_con"><table width="100%" border="0" cellspacing="0" cellpadding="0">
          <tr>
            <td width="57%">
              11111111111111111           
          </tr>
        </table>
        </div>
        </div>
    </ItemTemplate>
     </asp:Repeater>
    </ItemTemplate>上面在ie8 火狐下正常   ie6显示不隐藏
下面在ie6、7、8都正常<div class="close"><img src="images/close.gif" onclick="displayLayer(1);" /></div>
<div class="close"><img src="images/close.gif" onclick="displayLayer(2);" /></div>
<div class="close"><img src="images/close.gif" onclick="displayLayer(3);" /></div>
<div class="close"><img src="images/close.gif" onclick="closeLayer(1);" /></div>
<div class="close"><img src="images/close.gif" onclick="closeLayer(2);" /></div>
<div class="close"><img src="images/close.gif" onclick="closeLayer(3);" /></div>
displayLayer显示   closeLayer关闭
Getxu1()   Getxu1()  Getxu1()    都是从1自增
高手给点建议

解决方案 »

  1.   

    function closeLayer(shu)
      {
         document.getElementById("test_" + shu).style.display = "block";
      }
             
     function displayLayer(shu1)
     {
       document.getElementById("test_" + shu1).style.display= "none";
     }不用class来切换直接用style.display这样
      

  2.   

    .className替换样式操作是没有问题的 是不是缓存?
    如果单纯的只是要显示隐藏 没有其他样式控制
     document.getElementById("test_" + shu).style.display = "block/none";是比较简单的
      

  3.   

    为什么不直接用style.cssText 或者style.display呢?
    自己调试调试节点的className看看,有没有执行
      

  4.   

    找到原因了,原来是div嵌套在ul中才导致js失效