2012-07-16 41 views
0

我有這個jQuery:jQuery的的onclick,讓家長股利無形

$(document).ready(function() { 
    $('input[type="checkbox"]').click(function() { 
     var togClass=$(this).attr('class'); 
     if($(this).attr('checked')){ 
      $(this).parent().parent().('div.' + togClass).css("display", "inline-block"); 
     } 
     else { 
      $('div.' + togClass).css("display", "none"); 

     } 
    }); 
}); 

與此HTML基本重複:

<div id="Coltext"> 
    <div id= "Sidechecks"> 
     <input checkbox class= "ModelName"> 
    <div id="seqWrap"> 
    <div id="Nucwrap"> 
    <div id="hit" class= "modelname">"String"</div> 
    </div> 
    </div> 
    </div> 
</div> 

當我在checkbox我想點擊的所有HIT divs成爲無形,只在這個Div中。主DIV- coltext重複多次,每個都有相同的模型,但是當用戶點擊checkbox時,我只想要該主要div的Hit Divs消失,然後再次點擊。不能任何人幫助,似乎simlpe,但我不能讓它工作?

+1

在HTML上面應該 'Coltext' 和 '打' 是類的這些div? 另外請記住,您只能在頁面上使用一次ID,但只要您喜歡,可以多次使用類名稱。 – 2012-07-16 10:55:29

+1

是的 - 我同意@BillyMoat你應該檢討你的標記 – Horen 2012-07-16 10:56:27

+1

很多事情似乎並不是什麼...... – 2012-07-16 10:58:05

回答

1

查看關於驗證html的評論。林不知道該<input checkbox class= ModelName> 將呈現到的東西選擇通過$('input[type="checkbox"]')

嘗試改變

$(this).parent().parent().('div.' + togClass) 

$(this).parent('div.' + togClass + "[hit]") 

這應該向上穿越,尋找任何DIV與具有參數togClass「打'

+0

它如何懸而未決?有問題,或者你有EM排序? – mschr 2012-07-27 16:56:07

1

以下是如何檢查是否一個複選框被選中:

if($(".myCheckbox").is(':checked')) 
{ 
    // do something 
} 
else 
{ 
    // do something else 
} 
0

一旦你解決你的HTML標記(按照上述意見),可以考慮使用「最近」,這將搜索一個元素,它的祖先用於與選擇器匹配的最近元素(而不是與選擇器匹配的所有元素)。

$(this).closest('div.' + togClass).css("display", "none"); 

您當前else語句選擇所有匹配的類節點。

0
<div class="Coltext"> 
    <div id="Sidechecks"> 
      <input type="checkbox" class="ModelName" /> 
    <div class="seqWrap"> 
    <div class="Nucwrap"> 
    <div id="hit" class="modelname">"String"</div> 
    </div> 
    </div> 
    </div> 
    </div> 

jQuery的

$(this).parent('div.' + togClass + "[hit]") 
+0

現在,他已將屬性「命中」更改爲「id =」命中「」您的另一個答案副本不起作用。 – mschr 2012-07-16 11:08:54