jQuery .removeClass()不起作用

Tob*_*ess 25 css jquery

我需要从文本字段中删除CSS类,因为我想更改其背景颜色.我需要稍后更改颜色,所以我必须根据一些数据添加和删除字段.

.addClass工作得很好.问题是原始类高于添加的类,因此未显示更改,但正确添加了类.我现在尝试删除添加的上面的类 - 但是我无法从我的元素中删除任何类.这是为什么?我究竟做错了什么?这是代码:

if(i.stadt=="T") {
    $("#stadtInput").removeClass("ui-input-text input");
    $("#stadtInput").removeClass("ui-input-search input");
    $("#stadtInput").addClass( 'textboxRight' );
} else {
    $("#stadtInput").addClass( 'textboxWrong' );
}
Run Code Online (Sandbox Code Playgroud)

如果我使用浏览器的Webdev-Tools检查元素,我可以看到添加了textboxRight/ textboxWrongclass,但没有删除任何类.我已经尝试删除所有类.removeClass(),但这也不起作用..

Ale*_*ore 24

我不确定这是否符合您的规范,但jQuery attr()方法将采用两个参数并用您提供的类名替换所有类.如果你想在你的元素上保留其他类,这将不起作用,但如果没有尝试:

    $("#stadtInput").attr("class", "textboxRight");
Run Code Online (Sandbox Code Playgroud)


小智 6

接下来的几行对我有用

var current = $(el).closest(".panel").find(".panel-collapse");
    if( $(current).hasClass("in") ) {
        setTimeout(function(){///workaround
            $(".panel-collapse").removeClass("in");
        }, 10);
    } else {
        $(current).addClass("in");
    }
Run Code Online (Sandbox Code Playgroud)