试图找到一个选择器来获取所有既没有类又没有设置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更改为this,但仍然可以获得正确的结果:

var noSpace= $('*:not([id]):not([class])'); // second * not needed

JSFiddle used for testing

07-24 18:24
查看更多