2

HTML:

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

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

在此先感谢您的帮助。

4

5 回答 5

3

UL 不是 anchor 的子节点,但使用起来next()很简单:

$('ul a').click(function() {
     $(this).next().toggle();
});
于 2010-01-19T11:23:30.290 回答
1

鉴于您的链接有一个 id:

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

jQuery 将是:

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

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

$('ul.parent li a')

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

如果您希望设置动画,toggle 函数也接受一个参数,例如

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

于 2010-01-19T11:19:08.007 回答
0
$('ul.parent li a').click(function(event) {

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

});

您是否考虑过不在那里使用链接,而是使用<button>.

于 2010-01-19T11:17:58.027 回答
0
$("a.toggler").click(function(){
   $(this).parent().children('.child').toggle();
});
于 2010-01-19T11:18:37.370 回答
0
$('.parent a').click(function () {
  $('.child', this.parentNode).toggle();
});
于 2010-01-19T11:53:42.327 回答