Tengo una función que quiero permitir el paso en un objeto regular de elemento DOM de JavaScript o en un objeto jQuery. Si aún no es un objeto jQuery, lo convertiré en uno.Detectar objeto DOM frente a objeto jQuery
¿Alguien sabe de una manera muy confiable para detectar esto.
function functionName(elm){
//Detect if elm is not a jquery object in condition
if (elm) elm = $(elm);
}
Un enfoque lógico es detectar una de las propiedades del objeto elemento DOM. La pregunta es, ¿qué propiedad sería la más confiable para detectar?
También podría convertirlo en un objeto jquery en cualquier caso, ya que jQuery no tiene un problema con algo como: $ ($ imajQueryObjAlready); Sin embargo, el propósito de esta pregunta no es simplemente resolver el problema, sino encontrar una buena manera de detectar si se trata de un objeto DOM frente a un objeto jQuery.
+1 Dos excelentes soluciones: prefiero la última para la legibilidad. – lonesomeday
@lonesomeday - La única exención de responsabilidad que daría (o debería haber dado) es que no forma parte de la API pública, [actualmente de todos modos] (http: //bugs.jquery.com/ticket/7200), por lo que jQuery podría decidir eliminar esa propiedad algún día. Dudoso sin embargo. – user113716
Es cierto. ¡Por supuesto, a la inversa, jQuery podría decidir agregar una propiedad 'nodeType'! – lonesomeday