<div id="a" class="">
<ul id="" class="">
<li><a href="" title=""></a>
<ul id="" class="">
<li><a href="" title=""></a></li>
<li><a href="" title=""></a></li>
<li><a href="" title=""></a></li>
<li><a href="" title=""></a></li>
</ul><!-- / -->
</li>
<li><a href="" title=""></a>
<ul id="" class="">
<li><a href="" title=""></a></li>
<li><a href="" title=""></a></li>
<li><a href="" title=""></a></li>
</ul><!-- / -->
</li>
</ul><!-- / -->
</div><!-- / --><script type="text/javascript">
function w(){

var c = document.getElementById('a').getElementsByTagName('ul')[0].getElementsByTagName('li')
alert(c.length)

}
</script>
<button type="button" onclick="w();">按钮</button>怎么只获得子集,不获得孙子集呢。我只想得到 #a ul li  而不想得到#a ul li ul li~~~怎么弄的。

解决方案 »

  1.   

    可以用childNode属性<div id="a" class="">
        <ul id="" class="">
            <li><a href="" title=""></a>
                <ul id="" class="">
                    <li><a href="" title=""></a></li>
                    <li><a href="" title=""></a></li>
                    <li><a href="" title=""></a></li>
                    <li><a href="" title=""></a></li>
                </ul><!-- / -->
            </li>
            <li><a href="" title=""></a>
                <ul id="" class="">
                    <li><a href="" title=""></a></li>
                    <li><a href="" title=""></a></li>
                    <li><a href="" title=""></a></li>
                </ul><!-- / -->
            </li>
        </ul><!-- / -->
    </div><!-- / --><script type="text/javascript">
        function w(){            var c = document.getElementById('a').getElementsByTagName('ul')[0].childNodes;
    var a = [];
    for(var i=0,len=c.length;i<len;i++){
    if(c[i].nodeType == 1){
    a.push(c[i]);
    }
    }
    alert(a.length)
        }
    </script>
    <button type="button" onclick="w();">按钮</button>
      

  2.   

    这么纠结的问题,交给jquery好了
    $("#a li")
    几个字符就能搞定了
      

  3.   

    <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>$("#a > ul > li").each(function(i){
                    alert($(this).html());
               });
      

  4.   

    正在学习js的,jq我知道方法的,我就是想知道js的方法的。。
      

  5.   

    var c = document.getElementById('a').getElementsByTagName('ul')[0].childNodes;
                for(var i =0; i<c.length; i++){
                alert(c[i].outerHTML);
                }
      

  6.   

    可以考虑不用UL 里嵌套也可以在当前的集合中区判断也可以用 childNodes (需要判断tagName)
      

  7.   

    只能用childNodes遍历,getElementsByTagName会将对象下的所有tag一起获取