为什么Negator伪类在jQuery中不起作用?

为什么Negator伪类在jQuery中不起作用?,jquery,html,css,pseudo-class,Jquery,Html,Css,Pseudo Class,我有以下代码。它应该是自我记录的 $('body:not(#name)').click(function () { if (document.getElementById('name').value === '') { document.getElementById('name').value = 'Anonymous'; } }); 否定符被忽略。我做错了什么 编辑:我尝试了所有

我有以下代码。它应该是自我记录的

        $('body:not(#name)').click(function () {
            if (document.getElementById('name').value === '') {
                document.getElementById('name').value = 'Anonymous';
            }
        });
否定符被忽略。我做错了什么


编辑:我尝试了所有建议的解决方案,但没有成功。可能是因为
#name
是一个输入文本字段?在上下文中编写代码,并带有上次尝试使用.not()的痕迹:


名称:
电子邮件:
评论:
$(文档).ready(函数(){ $('#name')。单击(函数(){ if(document.getElementById('name')。value=='Anonymous'){ document.getElementById('name')。值=''; } }); $(“#电子邮件”)。单击(函数(){ if(document.getElementById('email')。值=='Secret'){ document.getElementById('email')。值=''; } }); $('body')。不是('name')。单击(函数(){ if(document.getElementById('name')。值=“”){ document.getElementById('name')。值='Anonymous'; } }); $('body')。不是('email')。单击(函数(){ if(document.getElementById('email')。值=“”){ document.getElementById('email')。值='Secret'; } });

我希望文本区域在单击之前显示“匿名”和“机密”。当用户单击其他位置时,值为“”,表示未输入任何内容,我希望返回“匿名”和“机密”。此时,字段为空,但单击后立即填充。

您的选择器错误,应为:

 $('body :not(#name)')
或者更好:

$('body').find(':not(#name)')
检查下一个代码

$('body').click(function () {
    if ($(this).find('#name').val() === '') {
        $(this).find('#name').val('Anonymous');
    }
});

Jquery有两个非选择器,您可以从中选择


$('body:not(#name'))等



$('body')。不是('name'))等等。

如果代码按照您认为的那样运行,那么您的代码只是自文档化的。请不要依赖代码在这里进行自我解释;我们需要知道您想要的是什么。您希望查找所有不包含在
主体
中的
名称
元素,还是仅当其自身ID不是时才希望匹配
主体
元素de>名称?
$('body').click(function () {
    if ($(this).find('#name').val() === '') {
        $(this).find('#name').val('Anonymous');
    }
});