为什么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');
}
});