Ho una funzione che voglio essere in grado di consentire il passaggio in un oggetto elemento DOM javascript normale o in un oggetto jQuery. Se non è ancora un oggetto jQuery, lo renderò uno.Rileva oggetto DOM contro jQuery Object
Qualcuno sa di un modo molto affidabile per rilevare questo.
function functionName(elm){
//Detect if elm is not a jquery object in condition
if (elm) elm = $(elm);
}
Un approccio logico consiste nel rilevare una delle proprietà dell'oggetto elemento DOM. La domanda è: quale proprietà sarebbe la più affidabile da rilevare?
Potrei anche solo renderlo un oggetto jquery in entrambi i casi poiché jQuery non ha problemi con qualcosa del tipo: $ ($ imajQueryObjAlready); Tuttavia, lo scopo di questa domanda non è solo risolvere il problema, ma trovare un buon modo per rilevare se si tratta di un oggetto DOM o di un oggetto jQuery.
+1 Due soluzioni eccellenti: preferisco quest'ultimo per la leggibilità. – lonesomeday
@lonesomeday - L'unica limitazione di responsabilità che darei (o che avrei dovuto fornire) è che non fa parte dell'API pubblica, [attualmente comunque] (http: //bugs.jquery.com/ticket/7200), così jQuery potrebbe decidere di rimuovere la proprietà un giorno. Però dubbioso. – user113716
Vero. Ovviamente, jQuery potrebbe decidere di aggiungere una proprietà 'nodeType'! – lonesomeday