另一个jquery发现下一个类不是slideToggle的兄弟

时间:2015-01-09 17:58:12

标签: jquery html slidetoggle

默认情况下隐藏所有.setupData

当我点击.setupTitle课程时,我希望立即(在DOM中的下一个).setupData切换。

我尝试了

的变体
$(".setupTitle").click(function(){
    $(this).parent(".setupBlock").next(".setupData").slideToggle();
});

但没有骰子。

<div class="setupBlock">
    <div class="setupTitle">
        consignees <img src="img/open.png" class="openArrow"">
    </div>
    <div id="consigneeDiv" class="setupData">
            consignees
    </div>
    <div class="clr"></div>
</div>  

<div class="setupBlock">
    <div class="setupTitle">
        locations <img src="img/open.png" class="openArrow"">
    </div>
    <div id="locaDiv" class="setupData">
        locations
    </div>
    <div class="clr"></div>
</div>  

<div class="setupBlock">
    <div class="setupTitle">
        users <img src="img/open.png" class="openArrow"">
    </div>
    <div id="usersDiv" class="setupData">
            users
    </div>
    <div class="clr"></div>
</div>  

<div class="setupBlock">
    <div class="setupTitle">
        next numbers <img src="img/open.png" class="openArrow"">
    </div>
    <div id="nnDiv" class="setupData">
            next numbers
    </div>
    <div class="clr"></div>
</div>    

3 个答案:

答案 0 :(得分:2)

.setupTitle.setupData的兄弟,您可以致电:

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

    $(this).siblings(".setupData").slideToggle();

  });

或者如果您更喜欢使用.next(),可以使用:

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

    $(this).next().slideToggle();

  });

或使用.parent()的方法,您需要使用.find()而不是.next(),因为您寻找的元素在您回溯到父级后就是一个孩子:

$(this).parent(".setupBlock").find(".setupData").slideToggle();

.find()查找后代,而.next()查找下一个元素

答案 1 :(得分:0)

你不想要.next(),你想要.find()

$(".setupTitle").click(function(){
    $(this).parent(".setupBlock").find(".setupData").slideToggle();
});

<强> jsFiddle example

首先,使用$(this).parent(".setupBlock")将DOM上传到父级。然后,.next()元素将成为您不想要的下一个兄弟<div class="setupBlock">。使用.find(".setupData")保留在div中,然后在其中搜索以找到相对.setupData div。

答案 2 :(得分:0)

在您的代码中只需查找父亲的结果:

 $(".setupTitle").click(function(){
     $(this).parent().find(".setupData").slideToggle();
});

希望它有所帮助!