日期:2014-05-16  浏览次数:20377 次

求解答啊~新手
HTML code

<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~~~怎么弄的。

------解决方案--------------------
可以用childNode属性
HTML code

<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>

------解决方案--------------------
这么纠结的问题,交给jquery好了。。。
$("#a li")
几个字符就能搞定了。。。
------解决方案--------------------
var c = document.getElementById('a').getElementsByTagName('ul')[0].childNodes;
for(var i =0; i<c.length; i++){
alert(c[i].outerHTML);
}