部分代码:
<div id="hp_wrapper" class="chn-wrapper" style="width:968px;">
       
        <div class="nav">
         <div id="div1">
                <asp:ImageButton  ID="Img1" runat="server" onclick="Img1_Click"/>
         </div>
         <div id="div2">
                <asp:ImageButton  id="Img2"  runat="server" onclick="Img2_Click" />
         </div>         </div>
              
         <div class="style2" >
        
                 <asp:Label id="LA1" Font-Size="12" runat="server"  />
        
         <div style="display:inline-table; float:left;"><br />
         <asp:ImageButton  runat="server" Width="170" Height="190" ID="A1"  onclick="A1_Click" />
         </div>
          
          </div>
</div>我要获取第二层容器div(即class="nav",class="style2"的div)用来实现div旋转?
但js里面我这样写:
var oimages = document.getElementById("hp_wrapper").getElementsByTagName("div")没反应,该怎么获取?

解决方案 »

  1.   

    既然你都给每个div起了id,怎么不直接获取呢
      

  2.   

    通过class属性值是否为空能区分出来吗:
    var obj = document.getElementById('hp_wrapper').getElementsByTagName('div');
    var oimages = [];
    for (var i = 0; i < obj.length; i ++) if (obj[i].className != '') oimages.push(obj[i]);
    alert(oimages.length); //2
      

  3.   

    我想获取第二层容器div(即class="nav",class="style2"的div)用来实现div旋转,有很多个 <div class="style2" >,这里面我只写了一个,我想获取的是class="style2"的div,怎么获取??
      

  4.   

    //这样也可以筛选出直接子节点,不管class属性是否为空
    var wrapper = document.getElementById('hp_wrapper');
    var obj = document.getElementById('hp_wrapper').getElementsByTagName('div');
    var oimages = [];
    for (var i = 0; i < obj.length; i ++) if (obj[i].parentNode == wrapper) oimages.push(obj[i]);
    alert(oimages.length); //2
      

  5.   

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
    </head>
    <body>
        <div id="hp_wrapper" class="chn-wrapper" style="width: 968px;">
            <div class="nav">
                <div id="div1">
                111
                </div>
                <div id="div2">
                222
                </div>
            </div>
            <div class="style2">
                <div style="display: inline-table; ">
                    3333
                </div>
            </div>
        </div>
        <script>
            var a = document.getElementsByTagName('div');
            for (var i = 0; i < a.length; i++) {
                if (a[i].className == 'nav') {
                    a[i].style.background = 'red';
                }
                 if (a[i].className == 'style2') {
                    a[i].style.background = 'blue'; 
                }
            }
        </script>
    </body>
    </html>
      

  6.   


    T5500,你好!我需要的就是<div id="hp_wrapper>容器下面的全部直接子节点,第三层的div不要,把这些div获取出来实现旋转效果,这些div都是<div class="style2" > </div>格式的
      

  7.   

    function getDiv() {
    var pardiv = document.getElementById("hp_wrapper");
    var childs = pardiv.childNodes;
    for (var i = 0; i < childs.length; i++) {
    if (childs[i].className == 'style2') 
    return childs[i];
    }
    }
      

  8.   

    第三层的不要是什么意思??旋转效果又是什么意思?难道你想要做的事情是这样的:把一本书倒过来拿,但只有封面旋转了180度,里面的书页都还是正向的?
    按照4楼的代码,oimages数组中保存的已经是所有的直接子节点对象了。
      

  9.   

    第三层的div不获取,但旋转的时候绑在一起转的,先用一下你写的代码看能不能用,谢谢!
      

  10.   

    jQuery很简单就解决了:
    $(".style2");
    或者
    $("div[class='style2']");
    参考jQuery手册:属性http://download.csdn.net/detail/dmtnewtons/4126497
    jQuery库http://download.csdn.net/detail/dmtnewtons/4233890
      

  11.   

    getelementbyclass()或者getelementbyclassName();传进你要的获取的那个div的class就好了
      

  12.   

    var oimages = document.getElementById("hp_wrapper").chileren;
      

  13.   

    var oimages = document.getElementById("hp_wrapper").children;
      

  14.   

    $(".nav,.style2")  JQuery class 选择器就好了