You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用jQuery查找完全不带任何属性的span元素

问题说明

我已经掌握了查找缺少某个特定属性的元素的方法,现在需要用jQuery查找完全没有任何属性的<span>元素。

举个例子,我需要的选择器可以匹配这类元素:

<span>Some stuff here</span>

但要排除所有带任意属性的span,包括但不限于:

<span id='foo'>Some stuff here</span>
<span class='FooCls'>Some stuff here</span>

请问该如何实现?

解决方案

可以通过判断原生DOM元素的attributes集合长度来实现筛选,有两种常用实现方案:

方案1:注册自定义伪类选择器(可复用)

先注册全局自定义选择器,后续所有地方都可以直接调用:

// 注册名为noAttr的自定义伪类
$.expr.pseudos.noAttr = function(el) {
  // 元素属性集合长度为0说明无任何属性
  return el.attributes.length === 0;
};

// 调用方法,直接筛选无属性的span
const noAttrSpans = $('span:noAttr');

方案2:直接使用filter方法筛选(无需注册)

如果只是单次使用,不需要复用筛选逻辑,可以直接用filter方法实现:

const noAttrSpans = $('span').filter(function() {
  return this.attributes.length === 0;
});

原理解释

原生DOM元素的attributes属性是一个只读的类数组集合,存储了元素绑定的所有属性(包括id、class、自定义data属性、行内style等所有类型的属性)。只要元素带有任意一个属性,该集合的长度就≥1,只有完全没有任何属性的元素,该集合的长度才等于0,完美匹配筛选需求。

内容的提问来源于stack exchange,提问作者HerrimanCoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 00:45:02