个人觉得这个结构不太好
<ul>
  <li> 1
    <ul>
      <li> 1_1 </li>
      <li> 1_2
        <ul>
          <li> 1_2_1 </li>
          <li> 1_2_2 </li>
        </ul>
      </li>
    </ul>
  </li>
  <li> 2
    <ul>
      <li> 2_1 </li>
    </ul>
  </li>
</ul>这样会容易处理点吧

解决方案 »

  1.   

    <ul id="aa">
      <li> 1
        <ul>
          <li> 1_1 </li>
          <li> 1_2
            <ul>
              <li> 1_2_1 </li>
              <li> 1_2_2 </li>
            </ul>
          </li>
        </ul>
      </li>
      <li> 2
        <ul>
          <li> 2_1 </li>
        </ul>
      </li>
    </ul><script>function Each(list, fun){
        for (var i = 0, len = list.length; i < len; i++) { fun(list[i], i); }
    };Each(document.getElementById("aa").getElementsByTagName("li"), function(o){
    o.onclick = function(e){
    window.event ? window.event.cancelBubble = true : e.stopPropagation() ;
    var ul = o.getElementsByTagName("ul")[0];
    if(ul){ ul.style.display = ul.style.display == "none" ? "" : "none"; }
    }
    })
    </script>试试这个