0

我有一个小 jQuery 案例。所以,我想删除所有的块类,但几乎没有例外——如果这个 div/块有一些类,它们中的每一个都会被删除,但没有一个指定。我尝试过这样的事情,但它不起作用。

$('#rounded_items').removeClass(function(){
    $('#rounded_items').not.getElementsByClassName('small_menu');
}).addClass('main_menu');

你能帮助我吗?

4

4 回答 4

2

有点不清楚你到底想做什么,但我最好的猜测是这样的:

$('#rounded_items:not(.small_menu)').removeClass().addClass('main_menu');

...这会将所有类名替换main_menu为所有具有 ID rounded_items(!!!) 的项目,除了那些具有 class 的项目small_menu

请注意,ID应该是唯一的。怎么强调都不过分。因此,按 ID 选择并期望多个元素是没有意义的,以便您可以进一步按类过滤。

于 2012-08-16T10:45:18.580 回答
1

ID 应该是唯一的,因此您所要做的就是在删除类之前检查您所针对的单个元素是否没有类:

var isSmall = $('#rounded_items').is('.small_menu');
$('#rounded_items').attr('class', isSmall ? 'main_menu' : '');
于 2012-08-16T10:45:45.833 回答
1

您不能只检查对象是否具有不应删除的此类。如果有 - 删除所有类并添加所需的类。像这样的东西:

if ($("#item").hasClass("neededClass")){
   $("#item").removeClass();
   $("#item").addClass("neededClass");
}

我不确定这是否是您想要做的。

于 2012-08-16T10:52:16.967 回答
0

使用以下代码

$('#rounded_items').removeClass(function(){
     var el = $('.small_menu');
    $('#rounded_items').not(el);
}).addClass('main_menu');
于 2012-08-16T10:45:55.877 回答