代码之家  ›  专栏  ›  技术社区  ›  m1k3y3

jquery:切换子级onclick

  •  1
  • m1k3y3  · 技术社区  · 14 年前

    <ul>  
    <li id="1" parent="0"><a href="#">1</a></li>  
        <li id="2" parent="0"><a href="#"> + </a><a href="#">2</a>  
            <ul parent="2">  
                <li id="23" parent="2"><a href="#">2.1</a></li>  
                <li id="50" parent="2"><a href="#"> + </a><a href="#">2.2</a>  
                    <ul parent="50">  
                        <li id="123" parent="50"><a  href="#">2.50.1</a></li>  
                    </ul>  
                </li>  
            </ul>  
        </li>
    </ul>
    
    2 回复  |  直到 14 年前
        1
  •  5
  •   Nick Craver    14 年前

    你可以用 .toggle() .slideToggle() 具有 .siblings()

    $("ul a:contains( + )").click(function() {
      $(this).siblings("ul").toggle();
    });
    

    You can test it out here . 注意虽然您的id和属性无效,但是您可能需要使用 data- attributes 在这里。另外,我建议你 + 许多的

    <a href="#" class=".toggle"> + </a>
    

    然后像这样绑定:

    $("ul a.toggle").click(function() {
      $(this).siblings("ul").toggle();
    });
    
        2
  •  0
  •   John Hartsock    14 年前

    像这样的东西

    $("ul a:contains('+')").click(function () {
      var $this = $(this);
      $this.siblings("ul").show();
    });