0

基本上,我有一排链接和一个位于它们下方的 div,内容被加载到其中。

在整个页面中有几个重复的块,所以我只想选择当前链接下方具有“活动”类的第一个 div。

下面是一个小提琴,它显示了实际问题。如您所见,我尝试使用:first,但这会选择页面中的第一个,而不是当前链接下方的第一个。

http://jsfiddle.net/wdcn6/11/

$(function () {
$('.accordionContent').hide();

    $(".accordionButton").click(function () {

        var content_id = $(this).attr('href');

        $('.active:first').html($(content_id).html()).show(500);
        return false;
    });
});
4

3 回答 3

3

$('.active:first')本身将始终匹配.active文档中的第一个。

:first仅在单击链接后开始匹配,您可以使用$(this).find()兄弟组合器:

$(this).find('~ .active:first').html($(content_id).html()).show(500);

jsFiddle 预览

或使用$(this).nextAll()

$(this).nextAll('.active:first').html($(content_id).html()).show(500);

jsFiddle 预览

于 2013-05-12T16:43:38.010 回答
0

检查这个jsfiddle http://jsfiddle.net/wdcn6/14/

$(function () {
    $('.accordionContent').hide();

        $(".accordionButton").click(function () {

            var content_id = $(this).attr('href');

           $(this).nextAll('.active').first().html($(content_id).html()).show(500);
            return false;
        });
    });
于 2013-05-12T16:44:21.520 回答
0

像这样的东西怎么样:

$(content_id + ' ~ .active:first').html($(content_id).html()).show(500);
于 2013-05-12T16:45:56.160 回答