2010-11-07 61 views
0

我有一個構造,用於檢查複選框是否被選中(誰可以使用更多的單詞「檢查」如此接近彼此?=))當文檔加載時,如果它被選中,表中的某些行會隱藏起來。它看起來像這樣:如何使這段代碼更加緊湊

if (jQuery('#navbar_disabled').is(':checked')) { 
     jQuery('#navbar_disabled').parents('tr').prev().hide(); 
     jQuery('#navbar_disabled').parents('tr').prev().prev().hide(); 
    } 

我相信有擺脫那些2最後「#navbar_disabled」,並使用類似「這個」或什麼,而不是一個快速的好方法。我知道我可以使用類似var navbar_checkbox_disabled=jQuery('#navbar_disabled')的東西並處理它,但如果它在那裏,我正在尋找更可愛的解決方案。謝謝。

UPDATE:爲什麼我問的不僅僅是其分配到一個新的變量其他的解決辦法是,我需要使用它的許多內容是這樣的:

jQuery('#company_address_disabled, #sociallinks_disabled, #contacts_mail_disabled, #navbar_disabled') 

回答

4

爲什麼不把它作爲一個過濾器,這將使jQuery對象空,如果它不檢查:

jQuery('#navbar_disabled:checked').parents('tr').prev().hide().prev().hide(); 
+0

哇,你只是一個主人,我相信我永遠不會意識到這一點,謝謝。如此可愛,緊湊,做我需要的! – 2010-11-07 11:59:14

1

這樣的事情也許!?

$tr = $('#navbar_disabled').parents('tr').prev(); 
if ($('#navbar_disabled').is(':checked')) { 
     $tr.hide(); 
     $tr.prev().hide(); 
    } 

編輯:

你鑫卡特對theese元素添加類!?我想你的代碼看起來是這樣的:

<tr class='hide_me'><td>prev</td></tr> 
<tr class='hide_me'><td>prev</td></tr> 
<tr><td><input id="navbar_disabled" /></td></tr> 


    if ($('#navbar_disabled').is(':checked')) { 
      $('.hide_me').hide(); 
     } 
+0

我知道這個變量,但找如果存在其他情況的話。謝謝。 – 2010-11-07 11:54:21