Ich arbeite mit einer Mischung aus Legacy-Code, der das jQuery DataTables-Plugin (Version 1.10. Einige der alten Code geht um jQuery-Objekt, und einige der alten Code geht um DataTables API objects. Ich würde gerne alle neuen Code akzeptieren entweder ein jQuery-Objekt oder ein DataTables-API-Objekt, aber ich konnte nicht feststellen, wenn eine Variable verweist auf ein DataTables-API-ObjektTest für jQuery-DataTables API-Objekt
Die einzige Erkennungsmethode, die ich finden konnte in der API, isDataTable, ist nicht geeignet - es nimmt einen String-Selektor für eine Tabelle und gibt zurück, ob die Auswahl in eine DataTable umgewandelt wurde
Die "Klassenerkennung" Methoden in this answer nicht funktionieren; typeof
gibt "object"
, constructor.name
zurück "Object"
, und ich kenne keinen Konstruktor für instanceof
oder isPrototypeOf
zu verwenden.
Wie in this answer vorgeschlagen (auf gleiche Frage), Object.prototype.toString.call(var)
kehrt "[object Object]"
In Chrome console.log(var)
erzeugt eine Zusammenfassung, die wie er Informationen hat eine andere Klasse aussieht:
▶ _Api {context: Array[1], selector: Object, ajax: Object}
ich, dass es sich vorstellen, bedeutet etwas, das ich irgendwo verwenden könnte, aber this question über wo Chrome bekommt diesen Namen hat keine sinnvollen Antworten.
Wie kann ich erkennen, wenn eine Variable auf ein jQuery-DataTables-API-Objekt verweist?
"! +" Ist ein Syntaxfehler, ich nehme an, das ist ein Tippfehler für "! =" – ShadSterling
Stellt sich heraus, ich verwende DataTables 1.10.3, und dies Lösung funktioniert. Vielen Dank! – ShadSterling
Gern geschehen.Freut mich, es zu hören, aber ich werde diese Frage im DataTables-Forum veröffentlichen und sehen, ob Allan Jardine einen besseren Weg hat, damit umzugehen. Ich bin besorgt, dass dies irgendwo auf der ganzen Linie brechen könnte. Ja, das ist ein Syntaxfehler, mein Fehler. Ich werde es reparieren, danke. Dumme Umschalttaste. – BobRodes