2013-07-22 27 views
0
<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.show').click(function(e){ 
     $(this).closest('.b').css('display','block'); 
     e.preventDefault; 
    }); 
}); 
</script> 

<style type="text/css"> 
.b{ display:none; } 
</style> 

<div class="a"><a href="#" class="show">show content 1</a></div> 
<div class="b">content 1</div> 

<div class="a"><a href="#" class="show">show content 2</a></div> 
<div class="b">content 2</div> 

<div class="a"><a href="#" class="show">show content 3</a></div> 
<div class="b">content 3</div> 

小提琴頁:http://jsfiddle.net/dus4a/3/.closest()不工作?

所以基本上我有3個內容顯示,如果我按鏈接 但最接近的習慣來看,可以u人告訴我,什麼是錯的?

非常感謝

+2

它不會工作,因爲'.b'不是'.show'的父項。 'e.preventDefault()'你忘了'()'。 – Omar

+0

jsfiddle是空的! –

+0

啊對不起更新了jsfiddle鏈接 –

回答

3

試試這個代碼,

$('.show').click(function (e) { 
    e.preventDefault(); 
    $(this).parent().next('.b').css('display', 'block'); 
}); 

http://jsfiddle.net/dus4a/1/

+0

我的代碼只是一個例子,我的真實代碼是超過這個我只是想知道爲什麼最接近不工作.... 但我已經從奧馬爾 答案謝謝我會接受這個回答 –

2

嘗試此

$(this).parent().next().css('display','block'); 
1

jQuery的.closest()方法是尋找,選擇器相匹配的第一元素通過查找通過它的祖先在DOM樹。這意味着只有在您尋找父母時才能使用。有趣的是,.closest()方法與.parents()方法非常相似,因爲它們都通過父項進行搜索,但如果多個元素匹配您的選擇器,則後者將返回多個元素。

就你而言,你會尋找兄弟姐妹,而不是父母。獲得下一個兄弟姐妹最簡單的方法是使用.next()方法。請注意,您可以使用.next()帶或不帶選擇器。如果在沒有選擇器的情況下使用,它將返回緊隨其後的同級,而如果你提供了選擇器,它將返回與選擇器匹配的第一個兄弟。

以你的HTML代碼,是,這裏是你將如何到達.b元素是彼此.a元素(這是你的鏈接的父):

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('.show').click(function(e){ 
     $(this).parent() // Get the ".a" first 
       .next('.b') // Get the next element after ".a" and that matches ".b" (could also be used without selector) 
       .css('display','block'); 
     e.preventDefault; 
    }); 
}); 
</script> 

<style type="text/css"> 
.b{ display:none; } 
</style> 

<div class="a"><a href="#" class="show">show content 1</a></div> 
<div class="b">content 1</div> 

<div class="a"><a href="#" class="show">show content 2</a></div> 
<div class="b">content 2</div> 

<div class="a"><a href="#" class="show">show content 3</a></div> 
<div class="b">content 3</div> 

在這裏,你可以看到這準確的行動代碼:http://jsfiddle.net/YVNDy/6/

乾杯!