Erzeugt einen jQuery-Fehler, wenn er keinem Element entspricht

8

Normalerweise, wenn ich ein Element mit jQuery auswähle, würde ich es vorziehen, mir einen Fehler zu geben, wenn es kein passendes Element findet.

Zum Beispiel hatte ich gerade einen Fehler, bei dem das fehlschlug, weil ich die Klasse eines ul -Elements geändert habe:

%Vor%

Gibt es eine bequeme Methode, um sicherzustellen, dass mein jQuery-Aufruf einem Element entspricht?

    
nicholaides 25.06.2011, 19:40
quelle

2 Antworten

11

Sie könnten ein Plugin erstellen, um sicherzustellen, dass das jQuery-Objekt nicht leer ist:

%Vor%

Verwendung:

%Vor%     
Guffa 25.06.2011, 19:51
quelle
6

In meinem Fall wollte ich, dass es automatisch auf alles angewendet wird, also habe ich den jQuery-Konstruktor modifiziert. Ich schlage vor, dass Sie dies nur während der Entwicklung verwenden, um Fehler zu finden, aber halten Sie es aus Ihrer Produktion heraus, um andere nicht zu verwirren. Da es sich nicht um einen Fehler handelt, habe ich nur die Konsolenprotokollierung verwendet. Allerdings habe ich einen auskommentierten Wurf hinzugefügt, falls Sie das lieber verwenden würden:

%Vor%

Ich wünschte wirklich, es gäbe eine Option in jQuery, um dies während des Entwickelns zu aktivieren.

Falls jemand sich wundern sollte ... wenn der Selektor eine Ergebnismenge zurückgibt, wenn es keine gültigen Übereinstimmungen gibt, ist dies eine bewusste Entscheidung der Entwickler von jQuery. Das bedeutet, dass Sie Code auf eine Sammlung von Elementen anwenden können, selbst wenn die Möglichkeit besteht, dass keine vorhanden ist. Ein gutes Beispiel sind Kommentare auf einer Seite oder markierte Kontrollkästchen. Wenn es einen Fehler gab, wenn keine Elemente gefunden wurden, müssten Sie Ihrem Code Prüfungen auf Existenz hinzufügen. Das folgende Thema enthält weitere Informationen: Ссылка

Dies ist eine großartige Funktion, um den Produktionscode schlank zu halten. Allerdings kann es Sie wirklich in den Arsch bei der Entwicklung beißen, wenn Sie einen kleinen Tippfehler machen; oder wenn Sie versuchen, eine ID namens "foobar" auszuwählen, wenn Sie eine Klasse namens "foobar" auswählen sollten.

    
Gerry 14.06.2012 07:21
quelle