在 body 元素上获取 jQuery "not" 方法和选择器时遇到问题

Having trouble getting jQuery "not" method and selector working on body element

我很难理解为什么这没有按预期工作。

我只是想定位 body 元素,但是 只有 如果 包含 .logged-in class,但是使用下面的代码,无论 class 是否存在,我都会向控制台发送一个日志。

if ($('body:not(.logged-in)')) {
    console.log('Hi!');
}

...或...

if ($('body').not('.logged-in')) {
    console.log('Hi!');
}

我是不是漏掉了什么?

这些选择器实际上会跳过(从整个选定元素中删除)具有 class logged-in 的元素。

我建议您使用属性 length 来检查元素是否存在。

if ($('body').find('.logged-in').length) { 
    console.log('Exists!');
}