1

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

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

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

我找到了一个名为jQuery alterClass的插件,它应该可以做到这一点,但我似乎无法让它工作。我完全按照说明进行操作,但它不会删除课程。我在这里设置了一个 JSFiddle

4

4 回答 4

1

在你的小提琴中, 你的锚标签有 id:<a id="#foo"

您在 JQuery 中将其称为$('#foo'). 那是指带有 的元素id = foo

小提琴

于 2012-11-04T21:56:51.007 回答
0

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

有时 jQuery UI/mobile 会在加载 DOM 后添加类,因此仅在文档准备好后运行一次并不能保证ui类不会再次出现:

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

小提琴

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

于 2012-11-04T22:20:43.377 回答
0

要获得所有从 UI 开始的类,您可以使用它。完全以给定的字符串开头

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

你可以阅读更多关于Jquery 文档

于 2012-11-04T22:28:49.723 回答
0

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

$('[class^=UI]').removeClass();
于 2012-11-04T22:38:31.957 回答