Use element.classList https://developer.mozilla.org/en-US/docs/DOM/element.classList .contains
method:
element.classList.contains(class);
这适用于所有当前的浏览器,并且也有腻子可以支持旧版浏览器。
或者,如果您使用较旧的浏览器并且不想使用 polyfill 来修复它们,请使用indexOf https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/indexOf是正确的,但你必须稍微调整一下:
function hasClass(element, className) {
return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;
}
否则你也会得到true
如果您正在查找的类是另一个类名称的一部分。
DEMO http://jsfiddle.net/fkling/zBKCC/
jQuery 使用类似(如果不相同)的方法。
应用于示例:
由于这不能与 switch 语句一起使用,因此您可以使用以下代码达到相同的效果:
var test = document.getElementById("test"),
classes = ['class1', 'class2', 'class3', 'class4'];
test.innerHTML = "";
for(var i = 0, j = classes.length; i < j; i++) {
if(hasClass(test, classes[i])) {
test.innerHTML = "I have " + classes[i];
break;
}
}
它也更少冗余;)