2012-10-03 19 views
-2

我想顯示/隱藏以下結構的表時的鏈接用戶點擊:jQuery(this):如何切換下一個表格?

<div class="container"> 
    <div class="banner"> 
     <h2>$header</h2> 
    </div> 
    <p class="howto">balbalblablablalbalbalbalblabla <a href='#'>link</a></p> 
     <table id=table_action class="widefat"> 
     ... 
     </table> 
</div> 

我試過,但它不工作,我不明白爲什麼:

對於我:
jQuery(document).ready(function(){ 
    jQuery('.howto a').click(function() { 
     jQuery.(this).next('table').toggle(); 
    }); 
}); 

對我來說: jQuery。(this)指的是事件被觸發的dom元素,並且有一個table元素,我的代碼段出了什麼問題?

感謝, 本

回答

3

您的鏈接$('.howto a')坐鎮內線.howto。在鏈接上調用.next()將返回虛無。

相反,試試這個.click()內:

jQuery(this).parent().next('table').toggle(); 

編輯

此外,您可能想添加一個.preventDefault(),以防止發生默認行爲單擊該鏈接時:

jQuery('.howto a').click(function(event) { 
    event.preventDefault(); 
    jQuery(this).parent().next('table').toggle(); 
}); 
+0

好的,這個工程。謝謝你的解釋。需要使用父母走出課堂'howto'來獲取下一個表格。非常感謝,問候本 –

+0

如果你可以標記我的答案被接受,我會很高興:) – Flauwekeul

+0

肯定!謝謝,祝你有美好的一天!本。 –

2

Working fiddle

代碼:

jQuery(this).parent().next('table').toggle(); 

你必須在你的代碼的兩個問題:的

  1. jQuery.(this)代替jQuery(this)
  2. 調用錨元素.next('table'),但該表旁邊父段落元素。在.next之前調用.parent()可以解決此問題。