删除一个类但不是两个

时间:2011-06-12 21:54:54

标签: jquery

我目前有这段代码根据选择选项显示/隐藏内容。

如何根据选择的选项添加和删除类,但不删除.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();
            }       
        });
    });

3 个答案:

答案 0 :(得分:2)

使用jQuery.addClassjQuery.removeClass添加和删除元素中的类名,而不会影响该元素可能具有的其他类。

答案 1 :(得分: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);
    });
});

答案 2 :(得分:1)

removeClass函数将从匹配元素集中删除任何命名类,例如$('#selector').removeClass('oldClass');

相反,addClass函数会为选择器匹配的元素添加一个新类。