我正在使用自定义的现代化配置,它选择了我在页面中使用的功能(并且只选择了那些功能)。
所以,我想简单地抓取页面<html>
的className,这样我就可以查看有多少no-
个前缀类(可能会检查classlist.match(/no-/g).length
)并确定我的javascript是否应该放弃。
目前尚不清楚我是否应该使用
document.getElementsByTagName('html').className
或
$('html').attr('class')
或
document.documentElement.className
答案 0 :(得分:27)
我会去:
document.documentElement.className;
因为不涉及任何函数的调用,所以没有像jquery这样的附加层。理想情况下,这是最干净,最快的。
答案 1 :(得分:4)
你可以使用jQuery hasClass
`方法:
确定是否为任何匹配的元素分配了给定的类。
if ( $('html').hasClass('no-something')) {
// do something here
}
答案 2 :(得分:2)
如果使用普通JS,则等价物为:
document.getElementsByTagName('html')[0].className
答案 3 :(得分:1)
如果您在项目中使用jquery,为什么不使用这个:
var classList = $("html").attr('class').split(/\s+/);
var prefix = 'no-';
$.each( classList, function(index, item){
if (item.substring(0, 2) === prefix) {
//do something
}
});
答案 4 :(得分:0)
var allClasses = [];
var allElements = document.querySelectorAll('*');
for (var i = 0; i < allElements.length; i++) {
if (allElements[i].hasAttribute("class")) {
var classes = allElements[i].className.toString().split(/\s+/);
for (var j = 0; j < classes.length; j++) {
var cls = classes[j];
if (cls && allClasses.indexOf(cls) === -1)
allClasses.push(cls);
}
}
}
console.log(allClasses);