J'ai une fonction que je veux pouvoir autoriser en passant un objet élément DOM javascript normal ou un objet jQuery. Si ce n'est pas encore un objet jQuery, je vais en faire un.Détection de l'objet DOM par rapport à l'objet jQuery
Est-ce que quelqu'un sait d'une manière très fiable de détecter cela.
function functionName(elm){
//Detect if elm is not a jquery object in condition
if (elm) elm = $(elm);
}
Une approche logique consiste à détecter l'une des propriétés de l'objet élément DOM. La question est, quelle propriété serait la plus fiable à détecter?
Je pourrais aussi juste en faire un objet jquery de toute façon puisque jQuery n'a pas de problème avec quelque chose comme: $ ($ imajQueryObjAlready); Cependant, le but de cette question n'est pas simplement de résoudre le problème, mais de trouver un bon moyen de détecter s'il s'agit d'un objet DOM ou d'un objet jQuery.
+1 Deux excellentes solutions - Je préfère cette dernière pour la lisibilité. – lonesomeday
@lonesomeday - Le seul avertissement que je donnerais (ou aurais dû donner) est qu'il ne fait pas partie de l'API publique, [actuellement de toute façon] (http: //bugs.jquery.com/ticket/7200), donc jQuery pourrait décider de supprimer cette propriété un jour. Douteux cependant. – user113716
True. Bien sûr, inversement, jQuery pourrait décider d'ajouter une propriété 'nodeType'! – lonesomeday