检查元素是否包含JavaScript中的类? 使用普通JavaScript(而不是jQuery),是否有任何方法检查元素含一堂课?目前,我正在做这样的事情:var test = document.getElementById("test");var testClass = test.className;switch (testClass) { case "class1": test.innerHTML = "I have class1"; break; case "class2": test.innerHTML = "I have class2"; break; case "class3": test.innerHTML = "I have class3"; break; case "class4": test.innerHTML = "I have class4"; break; default: test.innerHTML = "";}<div id="test" class="class1"></div>问题是如果我把HTML改成这个.。<div id="test" class="class1 class5"></div>.不再是完全匹配的,所以我得到默认的零输出("")。但我还是希望输出I have class1因为<div>仍然含这个.class1班级,等级。
3 回答
慕标琳琳
TA贡献1830条经验 获得超9个赞
element.classList .contains
element.classList.contains(class);
交替indexOf
function hasClass(element, className) {
return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1;}true
应用于该示例:
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;
}}
回首忆惘然
TA贡献1847条经验 获得超11个赞
var test = document.getElementById("test");var testClasses = test.className.split(" ");
test.innerHTML = "";for(var i=0; i<testClasses.length; i++) {
switch(testClasses[i]) {
case "class1": test.innerHTML += "I have class1<br/>"; break;
case "class2": test.innerHTML += "I have class2<br/>"; break;
case "class3": test.innerHTML += "I have class3<br/>"; break;
case "class4": test.innerHTML += "I have class4<br/>"; break;
default: test.innerHTML += "(unknown class:" + testClasses[i] + ")<br/>";
}}添加回答
举报
0/150
提交
取消
