我一直在寻找这个网站的解决方案,但我看不到它。我遇到了来自相同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。
答案 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是子元素,并且它们不在同一级别。