我正在尝试选择整个文档,除了某个div。在我看来,下面的代码应该有效,但事实并非如此。谁能看到我做错了什么?
$(document:not("#test")).bind('keydown',function(e){
switch(e.which) {
case 8:
$("#status").append("<br/>captured");
break;
default:
break;
}
});
要使用的HTML:
<textarea id="test" ></textarea><br/>
<input type="text" id="message"/>
<div id="status"></div>
我也试过了这个
的几个变体//$("*:not(#message)").bind('keydown',function(e){
答案 0 :(得分:5)
您正在将对象(document
)与jQuery选择器(:not("#test")
)混合。这使得语法无效,因为选择器应该在字符串中。
如果它已经运行,你将选择所有文档对象(唯一一个),但id="test"
除外(没有,因为文档对象没有HTML属性)。
也许你真的想要选择体内的所有元素,除了div?
$('body *:not(#test)')
答案 1 :(得分:1)
事件委托应该简单化。
$(document).on("keydown",":not(#message)",function(){
alert("worky");
});
答案 2 :(得分:0)
$('*:not(#test)', 'html')
应该适用于你的选择器,你可以用例如div替换*如果你的#test是div那么它会更快而jquery不会无用地检查所有控件。