我需要从一个文本字段中删除一个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' );
}
如果我用浏览器的Webdev-Tools检查元素,我可以看到添加了textboxRight
/textboxWrong
类,但没有删除类。我已经尝试通过.removeClass()
删除所有类,但这也不起作用。
7条答案
按热度按时间sdnqo3pr1#
我不确定这是否符合您的规范,但jQuery attr()方法将接受两个参数,并将所有类替换为您提供的类名。如果你想在元素中保留其他类,这将不起作用,但如果没有,请尝试:
gcuhipw92#
接下来的几行对我来说很管用
e5nqia273#
之前就有这个问题。我还不是jquery的Maven,所以我不知道它的行为是否像css的特异性。我的解决方法是通过使用更高的特异性来删除这个类。例如,不要使用
$(this).removeClass('acb')
,尝试使用更高的特异性,如$('#div1').children().first()
t30tvxxf4#
我也遇到过类似的问题。jQuery返回的数组只有一个元素。跟我来:
而不是
我需要
1tu0hz3e5#
我在使用
HAML
模板gem开发rails应用程序时遇到了同样的问题,因为我在一开始就包含了#
,但实际上并不需要它。当我把它取下来的时候,它就开始工作了。希望这有帮助!:)
ztyzrc3y6#
假设一个元素数组:
不起作用:
someElements[1].removeClass('.someClassToRemove');
已工作:
$(someElements[1]).removeClass('.someClassToRemove');
因此,您的问题可能与对象是数组或任何不兼容类型有关。
t8e9dugd7#
我也有这个问题。我很快发现它不适用于
svg
元素,这给了我更新jQuery版本(使用1.8.2)的线索。这就解决了问题。