最近想用jquery扩展一颗js树,但在控制树样式时遇到了以下的问题。先说一下树的结构<ul>
   <li><div>节点1</div>
        <ul></ul>    //没有子节点
   </li>
   <li><div>节点2</div>
         <ul>
              <li><div>节点2的子节点1</div><ul></ul></li>
              <li><div>节点2的子节点1</div><ul></ul></li>
         </ul>
   </li>
</ul>
我想取没有子节点的li,或有子节点的li,用jquery的筛选器该怎么写?

解决方案 »

  1.   


    <script src="js/jquery-1.3.2.js"></script>
    <script>
    window.onload=function(){
      $("li:has(li)").each(function(){alert($(this).html())});
      $("li").not("li:has(li)").each(function(){alert($(this).html())});
    }
    </script>
    <ul>
       <li><div>节点1</div>
            <ul></ul>
       </li>
       <li><div>节点2</div>
             <ul>
                  <li><div>节点2的子节点1</div><ul></ul></li>
                  <li><div>节点2的子节点1</div><ul></ul></li>
             </ul>
       </li>
    </ul>
      

  2.   

    谢谢楼上的,再补一个问题,如何只取到有子节点的li里<div>?
      

  3.   


    <script src="js/jquery-1.3.2.js"></script>
    <script>
    window.onload=function(){
      $("li:has(li)>div").each(function(){alert($(this).html())});    
    }
    </script>
    <ul>
       <li><div>节点1</div>
            <ul></ul>
       </li>
       <li><div>节点2</div>
             <ul>
                  <li><div>节点2的子节点1</div><ul></ul></li>
                  <li><div>节点2的子节点1</div><ul></ul></li>
             </ul>
       </li>
    </ul>