2014-02-28 430 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"); 
}