2011-04-06 115 views
0

我的應用程序編程方式產生一些HTML代碼,這樣找到的DIV:jQuery的 - 上鍊接點擊 - >切換不到鏈接觸發事件

<div class="container"> 
<div class="class1"> 
<a href="#" class="my-link">some link text 1</a> 
</div> 
<div class="class2"> 
some content 1 
</div> 
</div> 

<div class="container"> 
<div class="class1"> 
<a href="#" class="my-link">some link text 2</a> 
</div> 
<div class="class2"> 
some content 2 
</div> 
</div> 
......... 
over and over again 

使用jQuery,當我點擊任意鏈接(內<div class="class1">)我想切換在該鏈接下發現的<div class="class2">觸發事件。

正如你所看到的,每個「容器」div塊都會重複一遍又一遍的類名。

任何想法如何做到這一點?謝謝!

回答

2

你可以做這樣的事情。

$(".my-link").click(function(){ 
    $(this).closest("div").next(".class2").toggle(); 
}); 
+0

這工作!在此之前,我已經嘗試過類似以下內容:$(this).closest(「。class2」)。toggle();顯然沒有工作。爲了從中學習,爲什麼要這樣做:$(this).closest(「div」)。next(「。class2」)。toggle();作品和:$(this).closest(「。class2」)。toggle();不?我感謝你的時間! – avatar 2011-04-06 18:12:01

+1

@itgorilla - 這是因爲'.closest'遍歷了dom樹,而不是down。 – 2011-04-06 18:14:33

+0

這是有道理的。非常感謝! – avatar 2011-04-06 18:19:11

2
$(".my-link").click(function() { 
    $(this).parents(".container").find(".class2").toggle(); 
}) 

$(".my-link").click(function() { 
    $(this).parent().next(".class2").toggle(); 
}) 
+2

+1。或者'$(「。class2」,$(this).parents(「。container」))。toggle();'。 – Tomalak 2011-04-06 18:01:11

+0

我喜歡那個班輪。 +1對你也是先生 – corroded 2011-04-06 18:46:44

0

「下一個」 jQuery選擇返回下一個同級元素。

$('.class1').click(function(e) { 
    $(this).next().toggle(); 
}); 
0

試試這個:

$(function(){ 
$(".my-link").click(function(){ 
    $(this).parent().next(".class2").toggle(); 
}); 
});