jQuery没有删除类

时间:2014-04-25 03:01:56

标签: jquery select option addclass removeclass

所以我有这个jQuery代码,可以根据选项的值添加和删除一个类。 它添加了类很好,但没有删除类。

$(document).ready(function() {
  $('#mime').change(function(){
    var pull = $(this).val(),
    div = $('#' + pull);

    if($(this).val(pull)) {
      div.addClass("active");
    } else {
      div.removeClass("active");
    }
  });
});

我做错了什么?我需要提供更多代码吗?我不明白为什么它可以用于添加类而不是删除它。我也使用了.show()和.hide(),它的工作方式相同。显示有效,但隐藏没有。

2 个答案:

答案 0 :(得分:2)

你可能意味着:

$(document).ready(function() {
  $('#mime').change(function(){
    var pull = $(this).val(),
    div = $('#' + pull);

    if(div.hasClass('active')) {
      div.removeClass("active");
    } else {
      div.addClass("active");
    }
  });
});

或更好:

$(document).ready(function() {
    $('#mime').change(function(){
        var pull = $(this).val(),
        div = $('#' + pull);
        div.toggleClass("active");        
    });
});

答案 1 :(得分:0)

$(this).val()返回一个字符串:

if($(this).val()) {

将等于:

if(true)

因此您的代码永远不会到达else块。你需要在这里使用比较:

if($(this).val() == "some value here") {

但我认为你想要的是:

$(document).ready(function () {
    $('#mime').change(function () {
        var pull = $(this).val(),
            div = $('#' + pull);
        $('.active').removeClass("active");
        div.addClass("active");
    });
});