2011-06-12 4 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

http://jsfiddle.net/pmEVU/2/은 : http://api.jquery.com/addClass/, http://api.jquery.com/removeClass/ –

+0

하지만 난에서 작동 어떻게 선택 값? – Andy

답변

2

이게 원하는가요?

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

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

편집 그래서이 더 나은 무엇입니까? `사용 addClass`와`removeClass`

$('#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

+0

인 @Andy로 바뀝니다. 새 솔루션이 더 좋습니까? –

+0

대단히 감사합니다! 매우 감사. – Andy

2
사용 jQuery.addClass

jQuery.removeClass는 요소가 가질 수있는 다른 클래스에 영향을주지 않고 요소에서 클래스 이름을 추가하고 제거합니다.

+0

하지만 어떻게 이전 수업을 삭제할 수 있습니까? 그것을 찾기 위해 무엇을 사용합니까? – Andy

+0

제거하고자하는 클래스가 있다면 그것을 사용하여 요소를 찾으십시오 :'$ ('.class-to-remove'). removeClass ('class-to-remove')' – meagar

1

removeClass 함수는 일치하는 요소 집합에서 명명 된 클래스를 모두 제거합니다 (예 : $('#selector').removeClass('oldClass');).

반대로 addClass 함수는 선택기와 일치하는 요소에 새 클래스를 추가합니다.

관련 문제