使用来自相同DIV类的JQUERY slideToggle

时间:2013-08-07 08:14:42

标签: javascript jquery html dom slidetoggle

我一直在寻找这个网站的解决方案,但我看不到它。我遇到了来自相同DIV类ID的slideToggle问题。

<script>
$(document).ready(function(){
  $("div.yeah").click(function(){
   $(this).next('ul').slideToggle();
  });
});

我的代码不起作用

<div class="yeah"><a href="#">Menu 1</a><br />
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</div>


<div class="yeah"><a href="#">Menu 2</a><br />
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</div>


<div class="yeah"><a href="#">Menu 3</a><br />
<ul>
<li>One</li>
<li>Two</li>
<li>Three</li>
</div>

如何在不更改HTML的情况下单独切换其中的每一个,只允许更改jquery。

3 个答案:

答案 0 :(得分:1)

ul节点位于div节点内,而不在其旁边:

$("div.yeah").click(function(){
    $(this).find('ul').slideToggle();
});

答案 1 :(得分:0)

next()期望搜索兄弟姐妹,所以同级别: http://api.jquery.com/next/

相反,你可以这样做:

$(this).find('ul').slideToggle();

因为find看起来

此外,您应该关闭<ul>

答案 2 :(得分:0)

首先,您的DOM代码错误(ul没有关闭标记)

其次我假设您需要访问div中的ul,child('ul')而不是next('ul'),因为ul是子元素,并且它们不在同一级别。