2010-11-08 56 views
1

什么js/jquery的代码会使下面列表切换孩子点击“+”时?jquery:切换儿童onclick

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

回答

5

您可以使用.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(); 
}); 
+0

很好,谢谢 – m1k3y3 2010-11-08 17:23:16

+0

@ m1k3y02 - 欢迎:) – 2010-11-08 19:04:10

+0

对我也很好 – Avishai 2011-03-05 16:17:05

0

像这样的事情

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