确定 JavaScript 中元素类的存在
检查元素的类属性时,通常需要验证它是否包含特定类。提供的代码利用 switch 语句来检查元素的确切类值,但此方法无法检测部分匹配。
要解决此限制,请考虑使用 element.classList .contains 方法。此方法接受类名作为参数,并返回一个布尔值,指示其在元素的类列表中的存在:
element.classList.contains(class);
现代浏览器普遍支持此方法,并提供一致的方法来检查类包含。
或者,为了与缺少 .contains 方法的旧版浏览器兼容,您可以使用以下 indexOf 的修改版本方法:
function hasClass(element, className) { return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; }
此修改可确保您准确检测部分匹配,避免当您查找的类是较大类名称的一部分时出现误报。
将此方法应用于提供的示例:
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; } }
通过使用.contains方法或者修改后的indexOf函数,你可以可靠地判断一个元素是否包含JavaScript中的特定类,无论浏览器兼容性或是否存在部分匹配。
以上是如何可靠地检查 JavaScript 中特定类是否存在?的详细内容。更多信息请关注PHP中文网其他相关文章!