2 Stimmen

Wie kann ich das gesamte Dokument mit Ausnahme eines bestimmten Feldes auswählen?

Ich versuche, das gesamte Dokument mit Ausnahme eines bestimmten Bereichs auszuwählen. Meiner Meinung nach sollte der unten stehende Code funktionieren, aber das tut er nicht. Kann jemand sehen, was ich falsch mache?

$(document:not("#test")).bind('keydown',function(e){
  switch(e.which) {
  case 8:
  $("#status").append("<br/>captured");
  break;
  default:
  break;
  }
});

HTML zum Mitnehmen:

<textarea id="test" ></textarea><br/>
<input type="text" id="message"/>
<div id="status"></div>

Ich habe auch mehrere Varianten ausprobiert

//$("*:not(#message)").bind('keydown',function(e){

5voto

Guffa Punkte 663241

Sie mischen ein Objekt ( document ) mit einem jQuery-Selektor ( :not("#test") ). Das macht die Syntax ungültig, da der Selektor innerhalb einer Zeichenkette stehen sollte.

Wäre es ausgeführt worden, hätten Sie alle Dokumentobjekte (das einzige) ausgewählt, außer denen mit id="test" (keine, da das Dokumentobjekt keine HTML-Attribute hat).

Vielleicht möchten Sie tatsächlich alle Elemente innerhalb des Körpers auswählen, mit Ausnahme dieses div?

$('body *:not(#test)')

1voto

Kevin B Punkte 94073

Die Delegation von Ereignissen sollte dies einfach machen.

$(document).on("keydown",":not(#message)",function(){
    alert("worky");
});

0voto

Frenchi In LA Punkte 3089

$('*:not(#test)', 'html') sollte für Ihren Selektor arbeiten, können Sie ersetzen * mit zum Beispiel div, wenn Ihr #test ist div auf diese Weise wäre es schneller und Jquery nicht überprüfen alle Steuerelemente nutzlos.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X