我需要从页面中的所有元素中删除特定的类属性。那就是我们需要从当前 html 页面的所有元素中删除特定的类。我们只有类名作为参考(我们需要从该页面中删除),没有别的。
请注意,我不能使用任何东西作为参考,比如 id 或其他类,我也不能为此使用任何 JavaScript 库......
对此的任何建议将不胜感激。
另请注意,我们需要删除的类不会超过两次。
我需要从页面中的所有元素中删除特定的类属性。那就是我们需要从当前 html 页面的所有元素中删除特定的类。我们只有类名作为参考(我们需要从该页面中删除),没有别的。
请注意,我不能使用任何东西作为参考,比如 id 或其他类,我也不能为此使用任何 JavaScript 库......
对此的任何建议将不胜感激。
另请注意,我们需要删除的类不会超过两次。
如果您使用的是现代浏览器:
var forEach = Array.prototype.forEach;
var className = "yourclass";
forEach.call(document.querySelectorAll("." + className), function(node) {
node.classList.remove(className);
});
请参阅:forEach、querySelectorAll和classList以获取更多详细信息。
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');
更新:查看现场演示:http: //jsbin.com/eyuxur
这是一种在非常大的页面上可能会很慢的方法,但会从所有元素中删除该类。
var list = document.getElementsByTagName('*');
for(var i=0; i < list.length; i++){
list[i].className = list[i].className.replace('YourClassName','');
}