653 Stimmen

Prüfen, ob das Objekt ein jQuery-Objekt ist

Gibt es eine schnelle Möglichkeit zu überprüfen, ob ein Objekt ein jQuery-Objekt oder ein natives JavaScript-Objekt ist?

Beispiel:

var o = {};
var e = $('#element');

function doStuff(o) {
    if (o.selector) {
        console.log('object is jQuery');
    }
}

doStuff(o);
doStuff(e);

Natürlich funktioniert der obige Code, aber er ist nicht sicher. Sie könnten möglicherweise einen Selektorschlüssel zu der o Objekt und erhalten das gleiche Ergebnis. Gibt es einen besseren Weg, um sicherzustellen, dass das Objekt tatsächlich ein jQuery-Objekt ist?

Etwas im Einklang mit (typeof obj == 'jquery')

3 Stimmen

Ab jQuery 3.0 ist dies definitiv kein korrekter Weg, um zu prüfen, ob ein Objekt ein jQuery-Objekt ist, da die selector wurde vor langer Zeit veraltet und in Version 3.0 entfernt. Auch in früheren Versionen kann ein jQuery-Objekt einen leeren Selektorstring haben, zum Beispiel $(window) hat keinen Selektor. Verwenden Sie instanceof stattdessen.

4voto

Shaunak Shukla Punkte 2329

Es gibt jedoch eine weitere Möglichkeit, das Objekt in jQuery zu überprüfen.

jQuery.type(a); //this returns type of variable.

Ich habe ein Beispiel gegeben, um die Dinge zu verstehen, jsfiddle link

3voto

johnchou Punkte 31
return el instanceof jQuery ? el.size() > 0 : (el && el.tagName);

2voto

Sie können überprüfen, ob das Objekt von JQuery mit der jquery Eigentum:

myObject.jquery // 3.3.1

\=> gibt die Nummer der JQuery-Version zurück, wenn das Objekt von JQuery erzeugt wurde. => sonst wird zurückgegeben undefined

-9voto

Gabriel Seg Punkte 1
var elArray = [];
var elObjeto = {};

elArray.constructor == Array //TRUE
elArray.constructor == Object//TALSE

elObjeto.constructor == Array//FALSE
elObjeto.constructor == Object//TRUE

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