推荐使用 button:disabled 选择器获取所有实际禁用的按钮,它能匹配显式设置 disabled 属性或受 fieldset[disabled] 继承禁用的按钮;而 [disabled] 仅匹配 dom 中明确声明该属性的元素。

可以通过 document.querySelectorAll() 配合属性选择器来获取所有处于 disabled 状态的 <button></button> 元素。
使用属性选择器精确匹配 disabled 按钮
HTML 中,disabled 是一个布尔属性,只要存在(无论值是什么),元素就处于禁用状态。因此应使用 [disabled] 属性选择器,而不是 [disabled="true"] —— 后者无法匹配 <button disabled></button> 这类常见写法。
-
document.querySelectorAll('button[disabled]')—— 获取所有带disabled属性的<button></button>元素(最常用、推荐) -
document.querySelectorAll('button:disabled')—— 使用伪类:disabled,能同时匹配原生禁用状态(包括fieldset禁用导致的继承禁用),更语义化且覆盖更全
注意区分「有 disabled 属性」和「实际被禁用」
有些按钮可能没有 disabled 属性,但因父级 <fieldset disabled></fieldset> 而实际不可交互;此时 [disabled] 选不到,但 :disabled 可以。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- ✅
button:disabled匹配:显式设disabled、或被fieldset[disabled]禁用的按钮 - ❌
button[disabled]仅匹配:DOM 上明确写了disabled属性的按钮
获取后如何使用
返回的是 NodeList,可直接遍历或转为数组:
const disabledButtons = document.querySelectorAll('button:disabled');
disabledButtons.forEach(btn => {
console.log(btn.textContent);
});
如需兼容旧浏览器(IE8 不支持 :disabled),优先用 [disabled] 并确保手动添加该属性。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










