检查 JavaScript 中是否存在元素类
使用基本的 JavaScript,如何确定元素是否包含特定类?使用 className 属性时,需要精确的类匹配,这会导致元素具有多个类时受到限制。
解决方案:element.classList.contains
元素。 classList 公开了专门为此目的设计的 .contains 方法:
element.classList.contains(className);
所有现代浏览器都支持此方法并且可以为旧版本进行填充。
替代方案:使用indexOf
或者,您可以使用element.className和indexOf用于缺乏classList支持的旧版浏览器,但较小为了确保准确性,需要进行调整:
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className+ ' ') > -1; }
这可以确保所寻找的类不是另一个类的子串name.
代码示例
将此解决方案应用于您的具体情况:
var test = document.getElementById("test"); var 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; } }
此代码通过循环采用更有效的方法预定义的潜在类数组,减少冗余并提高可维护性。
以上是如何有效地检查 JavaScript 中元素类是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!