2013-10-30 176 views
2

我有4個選擇是/否框,我想顯示/隱藏。下面的else語句有效,但我只想隱藏它已經顯示的div(.hidden的CSS爲{display:none})。我需要建立一個單獨的功能嗎?使用多個選擇框隱藏div

JS:

$(document).ready(function(){ 
    $('#questions').change(function() { 
     var q1Val = $('#q1 :selected').val(); 
     var q2Val = $('#q2 :selected').val(); 
     var q3Val = $('#q3 :selected').val(); 
     var q4Val = $('#q4 :selected').val(); 

     //alert(selectVal); 
     if (q1Val == "No" && q2Val == "No" && q3Val == "No" && q4Val == "No") { 
      $(".hidden").show("slide"); 
      //updated code to use show() 
     } 
     else { 
      $(".hidden").hide("slide"); 
     } 
    }); 
}); 
+3

爲什麼'toggle'?爲什麼不「顯示」? –

+0

對不起,是的,代碼現在實際上是「顯示」,但問題在於「隱藏」部分。 – Macness

回答

1

使用:visible的選擇:

$(".hidden:visible").hide("slide"); 

不,我看到這樣的點太多,乾脆把$(".hidden").hide("slide");語句作爲你的代碼的第一個部分,這樣它就會隱藏它,並用更改邏輯顯示正確的一個。

+0

優秀。謝謝。 (我會在6分鐘內接受答案,當SO讓我!) – Macness

1

什麼現在你說在代碼:

如果所有選項都沒有,隱藏起來。我不認爲這就是你想要達到的目標?如果是這樣,請使用||作爲運營商。

+0

如果所有選項都不是(「否」),代碼說的是 – Macness

+0

我知道你的代碼,它說如果所有選項都不是,或者是我錯過了一部分。對不起,如果我混淆你。 –

+0

如果所有的選項都不是,顯示div,其他都隱藏div。 – Macness

0

我想你應該給一個公共類的所有選擇框.sel_box,然後做這樣的事情:

$('.sel_box').change(function() {