У меня есть функция, которую я хочу разрешить передавать как в обычном объекте элемента DOM javascript, так и в объекте jQuery. Если его еще не объект jQuery, я сделаю его одним.Обнаружение объекта DOM против объекта jQuery
Кто-нибудь знает очень надежный способ обнаружить это.
function functionName(elm){
//Detect if elm is not a jquery object in condition
if (elm) elm = $(elm);
}
Логический подход заключается в обнаружении одного из свойств объекта элемента DOM. Вопрос в том, какое свойство было бы наиболее надежным для обнаружения?
Я мог бы просто сделать его объектом jquery в любом случае, поскольку jQuery не имеет проблемы с чем-то вроде: $ ($ imajQueryObjAlready); Однако цель этого вопроса состоит не в том, чтобы просто решить проблему, а в том, чтобы найти хороший способ определить, является ли объект DOM объектом jQuery.
+1 Два отличных решения - я предпочитаю последний для удобочитаемости. – lonesomeday
@lonesomeday - Единственное исключение, которое я дал бы (или должен был дать), это то, что он не является частью публичного API, [в настоящее время так или иначе] (http://bugs.jquery.com/ticket/7200), поэтому jQuery может решить удалить это свойство когда-нибудь. Сомневаюсь. – user113716
Правда. Конечно, наоборот, jQuery может решить добавить свойство 'nodeType'! – lonesomeday