切换(如果存在)嵌套元素

时间:2010-01-19 11:14:45

标签: jquery click toggle

HTML:

<ul class="parent">
   <li><a href="#">toggler</a>
       <ul class="child">
       ...
       </ul>
   </li>
</ul>

我想通过'toggler'链接切换'child'UL(如果存在)。可能有多个父&gt;子元素,所以我只想切换相关的孩子。

提前感谢您的帮助。

5 个答案:

答案 0 :(得分:3)

UL不是锚的孩子,但使用next()很简单:

$('ul a').click(function() {
     $(this).next().toggle();
});

答案 1 :(得分:1)

鉴于您的链接有ID:

<a id="Mylink" href="#">

jQuery将是:

$("#MyLink").click(function(){
    $(this).siblings('.child').toggle();
});

您可以直接按元素和类选择而不是ID:

$('ul.parent li a')

但ID选择器通常被认为更快

如果您想要制作动画,切换功能也会接受参数,例如

    $(this).siblings('.child').toggle('slow');  /or 'medium', or 'fast'
    $(this).siblings('.child').toggle(100); //100 millisecs

对此的一个变化是slideToggle,具有相同的参数。

    $(this).siblings('.child').slideToggle('slow');

http://docs.jquery.com/Effects/toggle

答案 2 :(得分:0)

$('ul.parent li a').click(function(event) {

    $(this).next('ul.child').slideToggle(500);
    event.preventDefault();

});

您是否考虑过使用<button>

而不是使用链接

答案 3 :(得分:0)

$("a.toggler").click(function(){
   $(this).parent().children('.child').toggle();
});

答案 4 :(得分:0)

$('.parent a').click(function () {
  $('.child', this.parentNode).toggle();
});