我想创建一个drop自己的列表。
<dl>
<dt>Option 1</dt>
<dd><a href="#" /></dd>//a
<dd><a href="#" /></dd>//b
<dd><a href="#" /></dd>//c
<dt>Option 2</dt>
<dd><a href="#" /></dd>//1
<dd><a href="#" /></dd>//2
<dd><a href="#" /></dd>//3
</dl>
我的jquery:
<script>
$('dd').hide();
$(document).ready(function(){
$('dt').bind('click', function(){
$(this).toggleClass('open').nextAll('dd').slideToggle(2000);
});
});
</script>
我想要的是当用户点击选项1(dt)时,只显示a,b和c。单击选项2(dt),仅显示1,2和3。目前正在发生的是所有dd都被揭示(a,b,c和1,2,3)。我从nextAll()中删除了all,只显示了a和1。有没有办法只显示dt后面的信息而不显示所有dd?
答案 0 :(得分:1)
您可以使用nextUntil()匹配以下所有兄弟元素,直到下一个<dt>
:
$("dt").on("click", function() {
$(this).toggleClass("open").nextUntil("dt").slideToggle(2000);
});