Jquery选择除了下一个兄弟之外的所有

时间:2015-01-05 08:03:23

标签: javascript jquery frontend

我正在尝试选择所有<dd>兄弟姐妹,除了眼前的那个,但这不起作用..我尝试了很多方法......请告诉我正确的方法是什么。

$(function(){
    //hide all dds
    $("dd:not(:first)").hide();
    $("dt").click(function(){

        //slide up all dds except for the next
        $(this).siblings("dd").not(this.next()).slideUp();
        $(this).next().slideDown("nomral");

    });
});

我尝试的另一种方式是:

$(this).siblings("dd:not(first)").slideUp();

哪个也不起作用..我想只使用jquery实现这个,没有额外的库...请帮助

2 个答案:

答案 0 :(得分:0)

this包装到jQuery:

$(this).siblings("dd").not($(this).next()).slideUp();

答案 1 :(得分:0)

为什么不首先选择下一个元素然后获取兄弟姐妹?那会给你所有的dd元素,除了下一个。

$(this).next().siblings("dd").slideUp();

如果您还希望向下滑动下一个,您可以使用一条长(链式)线完成所有操作:

$(this).next().slideDown().siblings("dd").slideUp();

就原始代码而言,以下行会给您一个错误:

$(this).siblings("dd").not(this.next()).slideUp();

...因为this.next()正在尝试调用this没有的方法。它必须是$(this).next()

$(this).siblings("dd").not($(this).next()).slideUp();