3

我想为常见问题创建一个页面并使用 jQuery 来显示每个答案。但它不起作用。
每个问答的格式如下:

<div><a href="javascript:void(0)" class="expand">First Question</a></div>
<div class="answer" style="display:none">First Answer</div>  

我使用的 jQuery 代码是:

$(".expand").click(function(){
    $(this).next('.answer').slideToggle();
});

这是错的吗?你也可以看到它的jsFiddle

4

3 回答 3

19

这两个元素不在同一水平next()上起作用。

试试这个:

$(".expand").click(function(){
    $(this).parent().next('.answer').slideToggle();
});

这是一个更新的小提琴供您参考

于 2013-10-27T22:18:20.707 回答
3

因为jQuery.next()抓取兄弟姐妹,所以您要获取的 div 是父母的兄弟姐妹,而不是兄弟姐妹。

于 2013-10-27T22:18:19.927 回答
2

好吧 $(this) 是一个元素,并且该元素没有兄弟姐妹。如果你想要 div,请使用 parent:

$(this).parent().next()
于 2013-10-27T22:18:53.153 回答