试图找到一个选择器来获取所有既没有类又没有为它们设置id的元素。
到目前为止,我有两个不同的输出,取决于选择器中是否有一个空格:
// 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])');
-如果您只想处理实际内容
发布于 2014-05-28 07:22:17
withSpace - $('*:not([id]) *:not([class])');
将在没有ID的元素中找到没有类的所有元素。在选择器中放置一个空格就像单独调用find。
您可以将noSpace改为此类型,但仍然可以得到正确的结果:
var noSpace= $('*:not([id]):not([class])'); // second * not needed
发布于 2014-05-28 07:28:19
$("*").not("[class],[id]")
可以通过逗号分隔符继续添加属性或类或标记。
附加注释http://api.jquery.com/not-selector/
.not()方法将为您提供比将复杂选择器或变量推入:not()选择器筛选器中更易读的选择。在大多数情况下,这是一个更好的选择。
(:not)速度更快,因为它是css3选择器浏览器,但是在较旧的浏览器ie8或不支持css3的浏览器中显示一个真正缓慢的查询
发布于 2014-05-28 07:20:01
$('*:not([id]):not([class])')
您的withSpace
将选择没有类的元素和没有id的父元素。对noSpace
不太确定。更新哦,实际上它做的和我的一样。所以,答案是你的最后一个选择。
https://stackoverflow.com/questions/23915504
复制相似问题