使用jquery按类显示/隐藏附近的元素

qoefvg9y  于 2023-05-17  发布在  jQuery
关注(0)|答案(1)|浏览(148)

我试图切换附近元素中两个div的显示(显示一个,隐藏另一个)。页面上有多个类似的元素,所以我不能使用ID。
这就是我想做的,但显然是不正确的:
JQUERY

$(".buttonClass").click(function() {
    $(this).next(".innerContainer").next(".summary").toggle();
    $(this).next(".innerContainer").next(".details").toggle();
});

CSS

.buttonClass {
    cursor: pointer; 
}
.summary {
    display: none;
}

HTML

<div class="outerContainer">
    <div class="buttonClass"><img src="images/buttons/expandButton.png" /></div>
    <div class="innerContainer">
        <div class="summary">Summary here.</div>
        <div class="details">Details here.</div>
    </div>
</div>

<div class="outerContainer">
    <div class="buttonClass"><img src="images/buttons/expandButton.png" /></div>
    <div class="innerContainer">
        <div class="summary">Summary here.</div>
        <div class="details">Details here.</div>
    </div>
</div>

... more of the same

谢谢!

nwlqm0z1

nwlqm0z11#

使用find()

$(".buttonClass").click(function() {
    $(this).next(".innerContainer").find(".summary").toggle();
    $(this).next(".innerContainer").find(".details").toggle();
});

或者,因为按钮和目标有一个共享父级,所以可以在.outerContainer上使用closest()

$(".buttonClass").click(function() {
    $(this).closest(".outerContainer").find(".summary").toggle();
    $(this).closest(".outerContainer").find(".details").toggle();
});

相关问题