首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >没有类或ID的jQuery选择元素

没有类或ID的jQuery选择元素
EN

Stack Overflow用户
提问于 2014-05-28 15:13:25
回答 3查看 11.2K关注 0票数 4

试图找到一个选择器来获取所有既没有类又没有为它们设置id的元素。

到目前为止,我有两个不同的输出,取决于选择器中是否有一个空格:

代码语言:javascript
运行
复制
                                      // outputs
        var noID = $('*:not([id])');// 144 - may have a class
        var noClass = $('*:not([class])');  // 100 - may have an id

        var withSpace = $('*:not([id]) *:not([class])'); // 99 ?
        var noSpace= $('*:not([id])*:not([class])'); // 84 ?

哪个是正确的,我猜是noSpace -但我不知道。以前有人试过吗?

我的猜测是,在空间中,选择器将进入没有ID的标记中,并选择没有与它们关联的类的子元素。

noSpace结果是正确的,因为它只选择既没有类又没有id的元素集。

有人能证实一下吗?谢谢!

回答

使用此选择器查找既没有类也没有与其关联的id的元素。

代码语言:javascript
运行
复制
$('*:not([id]):not([class])');

奖金:$('body *:not([id]):not([class])'); -如果您只想处理实际内容

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-05-28 15:22:17

withSpace - $('*:not([id]) *:not([class])');将在没有ID的元素中找到没有类的所有元素。在选择器中放置一个空格就像单独调用find。

您可以将noSpace改为此类型,但仍然可以得到正确的结果:

代码语言:javascript
运行
复制
var noSpace= $('*:not([id]):not([class])'); // second * not needed

用于测试的JSFiddle

票数 6
EN

Stack Overflow用户

发布于 2014-05-28 15:28:19

代码语言:javascript
运行
复制
$("*").not("[class],[id]") 

可以通过逗号分隔符继续添加属性或类或标记。

附加注释http://api.jquery.com/not-selector/

.not()方法将为您提供比将复杂选择器或变量推入:not()选择器筛选器中更易读的选择。在大多数情况下,这是一个更好的选择。

(:not)速度更快,因为它是css3选择器浏览器,但是在较旧的浏览器ie8或不支持css3的浏览器中显示一个真正缓慢的查询

http://jsperf.com/jquery-css3-not-vs-not测试结果

票数 5
EN

Stack Overflow用户

发布于 2014-05-28 15:20:01

代码语言:javascript
运行
复制
$('*:not([id]):not([class])')

您的withSpace将选择没有类的元素和没有id的父元素。对noSpace不太确定。更新哦,实际上它做的和我的一样。所以,答案是你的最后一个选择。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23915504

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档