是否存在可不区分属性名、匹配指定属性值的CSS选择器?
原生CSS能力边界
- 目前没有任何已落地的标准化CSS选择器,能够跳过指定属性名的步骤,直接定位所有元素里、任意属性值满足匹配规则的节点。
- 所有现有和属性值相关的匹配规则,都必须先明确指定要检查的属性名,再对该属性下的值做匹配,常见规则包括:
- 精确值匹配:
[data-id="1001"] - 字符串包含匹配:
[class*="active"] - 独立单词匹配:
[title~="提示"] - 前缀/后缀匹配:
[href^="/local"]、[src$=".png"]
- 精确值匹配:
- 你提到的
[*="value"]、{value}这类写法本身不符合CSS语法规范,浏览器解析时会直接判定为无效规则,无法生效。早期CSS选择器的草案里曾经讨论过全局属性值匹配的设想,但这类语法从未进入正式标准,也没有任何浏览器实现支持。
等效实现的替代方案
- 如果页面DOM结构可控,最推荐的方案是给需要标记匹配值的节点统一加上约定的专用属性,比如统一用
data-target="目标值"标记对应节点,之后直接用[data-target="目标值"]选择器就能实现需要的匹配效果,这种方式完全基于原生CSS,运行性能最好,也最易维护。 - 如果DOM结构不可控,需要遍历检查任意属性的取值,原生CSS无法完成这类逻辑,需要借助JavaScript实现:
- 遍历页面全量DOM节点,逐个读取每个节点的所有属性值,检查是否和目标值匹配,给匹配成功的节点追加统一的类名,之后就可以通过类选择器定位这些节点了。
内容的提问来源于stack exchange,提问作者VorganHaze
相关产品推荐
相关产品推荐

