2014-02-28 168 views
4

我想选择一个特定的div,当点击一个按钮...唯一的问题是,它必须是buttonClicked的父div的div ...示例:jQuery - 在同一级别选择div

<div class="container"> 
    <div class="box"> 
    <h2>Langtidsparkering</h2> 
    <div class="content"> 
     Lorem ipsum dolor sit amet.. 
    </div> 
    </div> 
    <div class="listcontainer"> 
    <div class="list"> (THIS DIV SHOULD GET A CLASS "VISIBLE", WHEN THE BUTTON IS CLICKED) 
    </div> 
    <div class="listbar"> 
     <button class="viewPrices" type="submit" title="Open">Se priser<span></span </button> 
     </div> 
    </div> 
    </div> 

代码:

$(".viewPrices").click(function() { 
     $(".viewPrices").parents('.listaccordion .list').toggleClass('visible'); 
}); 

有什么建议? :-)

+0

请添加演示小提琴。 – Quinn

+0

Whops ... take this http://jsfiddle.net/unebune/n264v/1/ – unebune

+1

'$(this).closest('.listbar')。prev()' – adeneo

回答

4

这应该这样做。

.closest将通过父母,直到它找到一个匹配。然后从那你可以.find你正在寻找的目标股利。

$(".viewPrices").click(function() { 
    $(this).closest('.listcontainer').find('.list').toggleClass('visible'); 
}); 

这里是一个更新的小提琴:http://jsfiddle.net/n264v/2/

0

使用

$(this).parent().parent().children("div:eq(0)").toggleClass('visible'); 

这将选择其中的按钮是父div的父div中。

0

尝试:

$(".viewPrices").click(function() { 
    $(this).closest('div').prev('div').toggleClass('visible'); 
}); 
1

编辑您的jsfiddle:http://jsfiddle.net/n264v/3/

此外,下面的代码工作过:

$(".viewPrices").click(function() { 
     $(".viewPrices").parent().siblings('.list').toggleClass('visible'); 
}); 

对于这个HTML:

<div class="container"> 
    <div class="box"> 
    <h2>Langtidsparkering</h2> 
    <div class="content"> 
     Lorem ipsum dolor sit amet.. 
    </div> 
    </div> 
    <div class="listcontainer"> 
    <div class="list"> (THIS DIV SHOULD GET A CLASS "VISIBLE", WHEN THE BUTTON IS CLICKED) 
    </div> 
    <div class="listbar"> 
     <button class="viewPrices" type="submit" title="Open">Se priser<span></span </button> 
     </div> 
    </div> 
    </div> 

冒昧地添加以下的CSS:

.list{ 
    display:none; 
} 
.visible{ 
    display:block !important; 
} 

JSFiddle for the above sample

+0

其实喜欢这个,但是这两个div当点击按钮打开class .list时......嗯..怪异的.. – unebune

-1

首先有一个与类“listaccordion”所以你永远不会找到一个匹配不派息。

您可以使用:

$(".viewPrices").click(function() { 
$(this).parent(".listbar").siblings(".list").toggleClass("visible"); 
}