除某个字段外,如何选择整个文档?

时间:2012-10-02 21:47:04

标签: jquery

我正在尝试选择整个文档,除了某个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){

3 个答案:

答案 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不会无用地检查所有控件。