2010-02-20 71 views
0

親愛的ALL,我試圖做的事情很簡單,但不能讓我的頭在句法。使用下拉列表來隱藏/顯示與Jquery

我有一個下拉列表。選項有兩種類型。如果選擇了類別爲「less_than_3」的選項,我們會看到一個提醒。 如果一個選項類'更大',我們看到不同的警報。

繼承人我嘗試:。 (請注意我本來有一個工作版本通過直接連接單擊處理的OPTION元素,但這隻在Firefox中工作,所以我改變了我的做法

$('#time_at_address').change(function() { 
    if ($(this).children('.less_than_3:selected')) { 
     alert('less than 3!'); 
    } 
    if ($(this).children('.greater_than_3:selected')) { 
     alert('greater than 3!'); 
     } 
    }); 

回答

0

我設法用不同的方法來解決這個問題。通過使用val()不是通過類名進行過濾。

這樣..

$('#time_at_address').change(function() { 
      if ($(this).val() == 'less than 1') { 
        $('#address_less_than').show(); 
      } 
      else if ($(this).val() == '1 year') { 
        $('#address_less_than').show(); 
      } 
      else if ($(this).val() == '2 years') { 
        $('#address_less_than').show(); 
      } 
      else { 
       $('#address_less_than').hide(); 
      } 
    }); 

但誰能告訴我...是不可能的鏈條中的人第一語句(IF和兩個ELSE IFS)在一起嗎? (因爲他們返回相同的結果。)

我試過使用兩個垂直管道字符,但它沒有工作

+0

嘗試myval = $(this).val(); (myval =='less than 1')||(myval =='1 year')||(myval =='2 years')){$('#address_less_than')。show(); } else {$('#address_less_than')。hide(); } – 2010-02-21 01:42:17

+0

是的,它的確如此!感謝那個Mark。它減少了我的代碼。 任何想法爲什麼它需要在一個變量||。上班? – swisstony 2010-02-21 03:37:34

0

我不知道是否一個空數組計算爲在JS false所以要確保你可以使用:。

$(this).children('.less_than_3:selected').length > 0 

語法看起來很好,我想你的實際的問題是該警示框顯示出來

+0

感謝Felix。但是'.length> 0'會拋出一個錯誤。 對於clarfiy--我所要做的就是當用戶從列表中選擇某個選項時,會顯示某個DIV。 (如果他們選擇不同的選項,將顯示不同的DIV)> 我只是使用警報來簡化事情。 即時通訊不知道如果我應該使用:選擇(當我看着螢火蟲的屬性是甚至沒有) – swisstony 2010-02-21 00:10:30