通过jquery添加类,但仅当不存在时

1cklez4t  于 2023-06-05  发布在  jQuery
关注(0)|答案(8)|浏览(295)

我想添加一个类(class="bbox")到一个ul-list,但只有当不存在类时。这是我目前所知道的。如何使用jQuery检查ul-tag中是否存在类?

$("ul").addClass("bbox");
zi8p0yeb

zi8p0yeb1#

使用$('.selector').addClass("myClass");
jQuery的add/remove类函数都在内部检查重复项,这意味着调用addClass两次只会添加一次类。

5cnsuln7

5cnsuln72#

如果你想检查一个特定的类是否存在,那么:

if(!$("ul").hasClass("class-name")){
    $("ul").addClass("bbox");
 }

如果您想检查是否存在任何类:

if ($('ul').attr('class') == '') {
    $("ul").addClass("bbox");
}
xlpyo6sf

xlpyo6sf3#

第79章你差点就得手了!
让我纠正你

$("ul:not([class*='bbox'])").addClass("bbox");

你匹配绝对没有类的标签,如果ul有其他类,匹配就不会进行。你必须搜索你想添加的类。Like .hasClass approach.
希望能有所帮助

btqmn9zl

btqmn9zl4#

我在想这会不会很好-->
$("ul").removeClass("bbox").addClass("bbox") ;
首先,它会删除任何一个,然后添加新的。对我来说效果最好,因为我懒得打所有的if东西。

i2loujxw

i2loujxw5#

如果我在两个类之间切换,我使用这个方法

if (foo)
    $('button.btn-foo').removeClass('foo bar').addClass('foo');
if (bar)
    $('button.btn-foo').removeClass('foo bar').addClass('bar');

所以我不必检查按钮的当前设置

4jb9z9bj

4jb9z9bj6#

你可以使用这个代码添加类只有当如果不存在

$('.your-dom:not(.class-name)').addClass('class-name');
mzaanser

mzaanser7#

简要地说:

// fine, because nothing happens if 
// there are no matching elements
$("ul[class='']").addClass("bbox");
2j4z5cfb

2j4z5cfb8#

仅当没有类存在时才将类(class=“bbox”)添加到ul-list:

if (!$('ul').attr('class') == '') {
    $("ul").addClass("bbox");
}

相关问题