2012-11-04 37 views
1

我正在創建一個響應式網站。對於移動版本,我使用的是jQuery mobile,它爲我的HTML添加了很多類。我不希望這些類的桌面版本。如何使用jquery從通配符中刪除所有元素中的類

所有的jQuery移動類都以「ui」作爲前綴。雖然我可以使用.removeClass(''),但我不得不爲每個類和每個HTML元素分別使用.removeClass('')減速度。

如何使用通配符方法刪除以ui開頭的所有類,而不管它們位於哪個元素上?

我發現了一個名爲jQuery alterClass的插件,它應該這樣做,但我似乎無法使其工作。我完全按照說明操作,但不會刪除類。我已經建立了一個JSFiddle here

+0

什麼方法您使用確定是否刪除課程?爲什麼不使用相同的方法重定向桌面/移動版本?或者,也許更好的解釋什麼是潛在的課程 – charlietfl

回答

1

在你的小提琴, 你的錨標記具有ID:<a id="#foo"

你是指它它的JQuery作爲$('#foo')。 這是指與id = foo的元素。

Fiddle

+0

@zerkms這是關於他的小提琴。 –

+0

哎呀,現在我明白你的意思了:-S – zerkms

+0

謝謝!我不敢相信我犯了這麼簡單的錯誤! –

0

這應該刪除任何元素與ui開頭的類,它不是很有效,你應該考慮通過更具體的選擇。

有時jQuery用戶界面/移動將DOM後添加類加載,所以只是一次後文檔準備一點兒也不保證ui類不會再出現運行以下命令:

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

FIDDLE

我會認真考慮找到另一種方式來做到這一點,例如,如果網站不是移動版本等,只包括圖書館等。

0

要獲得所有以UI開始的課程,您可以使用這個。 Beginning exactly with a given string

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

你可以閱讀更多的Jquery Documentation

+0

這個課程如何去除? – adeneo

+0

@adeneo這個$('[class^=「UI」]')選擇與通配符匹配的所有元素。你可以在這之後使用.removeClass()或者用.prop(「class」,「something」)設置新的值。 –

+0

實際上,類將是一個屬性,而不是屬性,所以'attr()'是正確的jQuery方法,而不是'prop()'。我意識到這會選擇任何以'ui'開頭的類的元素,但是您將使用'removeClass()'移除所有類,而不是以'ui'開頭的類,但是它不是很清楚這個問題是否是OP之後的問題。我把它看作是想刪除任何元素上的'ui'開始的任何類,這將包括元素可能具有的其他類。 – adeneo

0

如果你想從所有具有開始UI類元素刪除所有類:

$('[class^=UI]').removeClass(); 
相關問題