在JavaScript / HTML中,判断指定的元素是否含有某个类

示例:在 JavaScript 中判断一个元素是否包含 active 类。主要有以下几种常用方法:


1. 使用 classList.contains() (推荐)

这是现代浏览器最简洁、最可靠的方法,返回布尔值。

javascript 复制代码
const element = document.querySelector('.your-element');
if (element.classList.contains('active')) {
    console.log('元素包含 active 类');
} else {
    console.log('元素不包含 active 类');
}

2. 使用 className 属性 + 正则 / indexOf

如果需兼容非常古老的浏览器(如 IE8 及以下),可以通过检查 className 字符串实现。

方法 A:正则表达式(精确匹配,避免误判)
javascript 复制代码
const element = document.querySelector('.your-element');
if (new RegExp('\\bactive\\b').test(element.className)) {
    console.log('包含 active 类');
}
方法 B:indexOf(简单但有缺陷,如 active 是其他类名的一部分时可能误判)
javascript 复制代码
if (element.className.indexOf('active') !== -1) {
    // 会误判如 "inactive" 也包含 "active"
}

不推荐 直接用 indexOf,因为可能匹配到类似 inactive 这样的类名。


3. 使用 matches() 方法

利用 CSS 选择器判断元素是否匹配某个选择器。

javascript 复制代码
if (element.matches('.active')) {
    console.log('包含 active 类');
}

matches 兼容性较好(IE9+ 需加前缀 msMatchesSelector),但主要是用于选择器匹配,也可以用来检查类名。


总结

  • 现代项目 → 首选 element.classList.contains('active')
  • 需要兼容非常老的浏览器 → 使用正则表达式 /\bactive\b/.test(element.className)
  • 顺便一提 :也可用 element.matches('.active'),同样简洁,但语义上不如 classList.contains 直接。
相关推荐
探数API小喇叭5 分钟前
基站查询 API 怎么用?LAC、CELLID 参数详解与实战】
java·开发语言·api·基站定位
Mr.Lu ‍7 分钟前
C++开发,使用openCV API对图片进行压缩
开发语言·c++·opencv
z落落9 分钟前
C# WinForm NModbus 串口通信+WinForm Modbus4 串口通信
开发语言·单片机·c#
Mojitocean11 分钟前
Win开发环境配置(持续更新)
开发语言·python
CoderIsArt33 分钟前
C#环境中部署MQTT客户端
开发语言·c#
Dovis(誓平步青云)1 小时前
模拟器横评:电脑上看小说、追短剧用什么模拟器?MuMu、雷电、腾讯手游助手实测
android·java·服务器·前端·javascript·电脑
HugoStudio_SWAN1 小时前
【按键反馈】C++ 实现键盘烟花秀
开发语言·c++·学习·程序人生
AI 编程助手GPT1 小时前
Bun 1.4 正式发布:从 Zig 改写为 Rust,内置浏览器、图片处理和并行测试
开发语言·人工智能·后端·ai·chatgpt
paopaokaka_luck1 小时前
基于springboot3+vue3的飞行器模型实验室预约管理系统(协同过滤算法、Echarts图形化分析)
开发语言·推荐算法
lingchen19061 小时前
用MATLAB r2010b和r2016b求解微分方程组
开发语言·算法·matlab