为什么prev()和.siblings()都不能在上下文中工作?

时间:2012-12-02 09:48:34

标签: jquery

<ul id="menu2">
<li><a href="/term/6">close/show</a>
<ul class="haschild">
<li><a href="/term/14">test 1 2</a></li>
<li><a href="/term/13">tst 13</a></li>
</ul>
</li>
<li><a href="/term/7">helli</a></li>
</ul>

jquery代码:

  $("ul.haschild").hide();
  $("ul.haschild").prev().click(function(){
    $(this).children('.haschild').slideToggle('slow');
    return false;
});

点击关闭/显示时, haschild 部分在show或hide中不会发生变化。

然后我将$("ul.haschild").prev()更改为$("ul.haschild").siblings()它仍然无法正常工作。 谢谢

1 个答案:

答案 0 :(得分:2)

那是因为点击的元素没有.haschild后代元素,您可以使用next方法:

$(this).next('.haschild').slideToggle('slow');

http://jsfiddle.net/tk9j8/

请注意,您应该将代码放在文档就绪处理程序中。