[英]jQuery Select Element that has no Class or ID
试图找到一个选择器来获取既没有类也没有设置id的所有元素。
到目前为止,我有2个不同的输出,具体取决于选择器中是否有空格:
// 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的元素。
$('*:not([id]):not([class])');
奖金: $('body *:not([id]):not([class])');
- 如果您只想处理实际内容
withSpace - $('*:not([id]) *:not([class])');
将找到所有没有类的元素,这些元素在没有ID的元素内。 在选择器中放置一个空格就像分开调用find一样。
您可以将noSpace更改为此而仍然可以获得正确的结果:
var noSpace= $('*:not([id]):not([class])'); // second * not needed
$("*").not("[class],[id]")
您可以通过逗号分隔符继续添加属性或类或标记
附加说明http://api.jquery.com/not-selector/
除了将复杂的选择器或变量推送到:not()选择器过滤器之外,.not()方法最终会为您提供更多可读选择。 在大多数情况下,这是一个更好的选择
(:not)更快,因为它是css3选择器浏览器,但在较旧的浏览器ie8或不支持css3的浏览器中显示真正的慢查询
$('*:not([id]):not([class])')
您的withSpace
将选择没有类且父级没有id的元素。 关于noSpace
。 更新哦,实际上和我的一样。 所以,答案是你的最后一个选择器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.