2012-08-14 128 views
2

我想單擊按鈕1時展開類「divtoexpand」最近的div。選擇類最近點擊的按鈕

我該如何做到這一點?

HTML:

<div class="test"> 
    <div class="menu"> 
     <div class="button1"></div> 
    </div> 
</div> 
<div class="divtoexpand"></div> 

<div class="test"> 
    <div class="menu"> 
     <div class="button1"></div> 
    </div> 
</div> 
<div class="divtoexpand"></div> 
+0

文檔http://api.jquery.com/closest/ – Herokiller 2012-08-14 07:58:13

回答

3
$('.button1').on('click', function() { 
    $(this).closest('div.test').next('div.divtoexpand').slideDown(); 
}); 

DEMO

+0

如何解決這個問題呢,如果我添加測試DIV和divtoexpand之間一個新的div ? – ffffff01 2012-08-14 12:10:03

0

如果你需要一個更通用的方法,你可以嘗試以下方法:

$('.button1').on('click', function() { 
    $(this).parents().next('.divtoexpand').slideDown(); 
}) 

DEMO

+1

除非你的DOM包含多個'.divtoexpand'元素,否則使用'.closest()'會更有效率。 'parents()'將搜索整個DOM,並將所有結果作爲數組返回,而closest()將返回它找到的第一個實例。 – Jeemusu 2012-08-14 08:10:50

0

首先我會給你的按鈕一個ID。然後,你可以做的按鈕被點擊時顯示:

<div class="test"> 
    <div class="menu"> 
     <div class="button1" id="foo"></div> 
    </div> 
</div> 
<div class="divtoexpand" id="bar"></div> 

<script> 
    $("#foo").click(function(){ 
    $("#bar").show() 
    }); 
</script>