我需要從頁面中的所有元素中刪除特定的班級屬性。那就是我們需要從當前html頁面的所有元素中刪除特定的類。我們只有類名作爲參考(我們需要從該頁面中刪除)而沒有別的。使用javascript刪除班級
請注意,我不能使用任何像ID或其他類參考,也是我不能使用任何JavaScript庫,這也...
任何建議在此將不勝感激。
另請注意,我們需要刪除的課程不會超過兩次。
我需要從頁面中的所有元素中刪除特定的班級屬性。那就是我們需要從當前html頁面的所有元素中刪除特定的類。我們只有類名作爲參考(我們需要從該頁面中刪除)而沒有別的。使用javascript刪除班級
請注意,我不能使用任何像ID或其他類參考,也是我不能使用任何JavaScript庫,這也...
任何建議在此將不勝感激。
另請注意,我們需要刪除的課程不會超過兩次。
function removeClass(className) {
// convert the result to an Array object
var els = Array.prototype.slice.call(
document.getElementsByClassName(className)
);
for (var i = 0, l = els.length; i < l; i++) {
var el = els[i];
el.className = el.className.replace(
new RegExp('(^|\\s+)' + className + '(\\s+|$)', 'g'),
'$1'
);
}
}
,只是把它作爲:
removeClass('desired-class-name');
UPDATE:看到現場演示:http://jsbin.com/eyuxur
你讀過這個問題了嗎?第二句話? – 2012-07-15 18:02:27
@DavidThomas好...爲了從元素中刪除類,你需要**知道那個類。並且要知道我的代碼不需要任何「任何引用,如id或** another ** class」。 – 2012-07-15 18:06:37
您的代碼無法可靠運行,如果您嘗試刪除「欄」,屬性值「foobarbaz」將替換爲「foobaz」。另外,您應該使用現場的'className'屬性。 – PointedEars 2012-07-15 18:10:55
這裏有一個方法可以是非常大的網頁慢,但是移除來自所有元素的類。
var list = document.getElementsByTagName('*');
for(var i=0; i < list.length; i++){
list[i].className = list[i].className.replace('YourClassName','');
}
您正在使用'className',這很好,但與gion_13的代碼存在相同的問題。 – PointedEars 2012-07-15 18:12:55
如果您使用的是最新的瀏覽器:
var forEach = Array.prototype.forEach;
var className = "yourclass";
forEach.call(document.querySelectorAll("." + className), function(node) {
node.classList.remove(className);
});
見:forEach,querySelectorAll和classList進一步的細節。
請提供一些描述您的html結構的代碼,以便我們更有可能提供幫助 – Ando 2012-07-15 17:58:13
從* what *元素中刪除類。他們全部?他們中有一些?在什麼情況下,或者什麼事件? ......我對這個問題的投票感到着迷。 – 2012-07-15 18:01:39
目前尚不清楚。你想從具有該類的元素中刪除特定的「類名」(所以,你知道你將要刪除的內容)還是其他內容?你想從頁面的所有元素中刪除所有的類屬性?什麼是識別「一個特定的類屬性」? – ZER0 2012-07-15 18:10:54