2011-06-12 63 views
0

我目前有這個代碼顯示/隱藏基於選擇選項的內容。刪除一個類但不是兩個

我該如何工作添加和刪除一個類,基於任何選項被選中,但沒有刪除.desarea?

<option value="country1"> 
<option valye="country2"> 

<div class="desarea country1"> 

//Create destination switch 
    $('#regionselect').change(function(){ 
     var selected = $(this).find(':selected'); 
     $('.regionDetail').fadeOut(); 
     var count = $('.countrylist').length; 
     $('.countrylist').slideUp(function(){ 
      if(!--count) { 
       $('.'+selected.val()).slideDown(); 
      }  
     }); 
    }); 
+0

使用'addClass'和'removeClass':http://api.jquery.com/addClass/,http://api.jquery.com/removeClass/ – 2011-06-12 21:58:42

+0

但我怎麼在工作選擇值? – Andy 2011-06-12 21:59:47

回答

2

這是你想要的嗎?

$('#regionselect').change(function(){ 
    var selectedValue = $(this).val(); 

    $('div').removeClass(selectedValue); 
}); 

編輯 因此,這是更好? http://jsfiddle.net/pmEVU/2/

$('#regionselect').change(function(){ 
    var selectedValue = $(this).val(); 

    $('option', this).each(function() { 
     var currentValue = $(this).val(); 

     if (currentValue == selectedValue) 
      $('div').addClass(selectedValue); 
     else 
      $('div').removeClass(currentValue); 
    }); 
}); 
+0

該類將被添加到。 desarea,然後在另一個項目被選中時刪除...例如(.desarea country1)其中country1是之前選定的值。這將被刪除並替換爲下一個值 – Andy 2011-06-12 22:13:46

+0

@Andy新解決方案是否更好? – 2011-06-12 22:21:11

+0

非常感謝!非常感激。 – Andy 2011-06-12 22:32:25

2

使用jQuery.addClassjQuery.removeClass從一個元素,而不會影響其他類的元素可能有添加和刪除的類名稱。

+0

但我該如何刪除舊班?我用什麼來找到它? – Andy 2011-06-12 22:04:22

+0

如果您有要刪除的類,請使用它來查找元素:'$('。class-to-remove')。removeClass('class-to-remove')' – meagar 2011-06-12 22:06:54

1

removeClass函數將刪除匹配元素集合中的任何命名類,例如$('#selector').removeClass('oldClass');

相反,addClass函數會向選擇器匹配的元素添加一個新類。

相關問題