如何使用Jquery从带有通配符的所有元素中删除类

时间:2012-11-04 21:50:50

标签: jquery html css jquery-mobile

我正在制作一个快速响应的网站。对于移动版本,我使用的是jQuery mobile,它为我的HTML添加了许多类。我不希望这些类用于桌面版。

所有jQuery移动类都以“ui”为前缀。虽然我可以使用.removeClass(''),但我必须为每个类和每个HTML元素使用单独的.removeClass('')减速度。

如何使用通配符方法删除所有以ui开头的类,无论它们位于哪个元素上?

我找到了一个名为jQuery alterClass的插件,应该这样做,但我似乎无法让它工作。我完全按照说明操作,但它不会删除类。我已经设置了JSFiddle here

4 个答案:

答案 0 :(得分:1)

在你的小提琴中, 您的锚标记的ID为<a id="#foo"

您在JQuery中将其称为$('#foo')。 这指的是具有id = foo的元素。

(的 Fiddle

答案 1 :(得分:0)

这应删除在任何元素上以ui开头的任何类,它不是非常有效,您应该考虑传递更具体的选择器。

有时jQuery UI / mobile会在加载DOM后添加类,因此只需在文档准备就绪后运行一次就可以保证ui类不会再次出现:

$('*').attr('class', function(i, classes) {
    return classes.replace(/\sui[^\s]*|^ui[^\s]*/gi, '');
});

FIDDLE

我会认真考虑寻找另一种方法来做到这一点,例如,如果该网站是移动版本等,则不包括图书馆。

答案 2 :(得分:0)

要获得所有以UI开头的课程,您可以使用此课程。 Beginning exactly with a given string

//handles classes like UI1, UI2 ...
$('[class^="UI"]')

您可以在Jquery Documentation

上阅读更多内容

答案 3 :(得分:0)

如果要删除所有具有以UI开头的类的元素中的所有类:

$('[class^=UI]').removeClass();