2013-10-09 3 views
0

Этот вопрос относится как к языковой реализации ECMAScript, так и к JavaScript, как к jQuery, а инструменты разработчика доступны в большинстве популярных браузеров.Как рассказать тип JavaScript и/или jQueryobject

При выполнении инструкции, как так:

var theElement = $('#theId').closest(); 

, что является типа из theElement?

Я предполагаю, что в ситуации jQuery, как и выше, многие методы jQuery, включая вышеперечисленное, фактически возвращают сам объект jQuery, который упаковывает вещи, которые вы действительно хотите получить. Это, так что он может поддерживать свободно API и позволить вам присоединиться вызовы методов в одном операторе, как так:

$('#selector').foo().bar().gar().har(); 

Однако в случае JQuery то, как вы определяете, что такие реального базового типа является? Например, если возвращаемый элемент был строкой таблицы с идентификатором таблицы tableRowNumber25, то как вы дойдете до этого, скажем, с помощью FireBug.

Когда я смотрю на возвращаемый объект jQuery или простой объект JavaScript в окне часов Firebug или на любом из инструментов разработчика в большинстве популярных браузеров, я вижу длинный список свойств/ключей, и я не вижу знаете, на кого смотреть. В объекте jQuery большинство свойств - это lamdas.

Итак, на самом деле, мой вопрос: откуда вы знаете базовый тип, откуда вы знаете, что такое на самом деле?

+1

theElement представляет собой сборник jQuery для извлечения необработанного узла html do var varNode = theElement.get (0) // или theElement [0] '; Вы можете использовать консоль firebug для выполнения произвольного кода; Не часто знаете, но ожидайте тип возвращаемого значения ': p' – Stphane

+0

И это вернет элемент/узел DOM - тип, возвращаемый' document.getElementById', правильно? –

+1

да, это он! – Stphane

ответ

1

Тип theElement будет [object jQuery].

Если вы хотите, сам HTML-элемент, вы должны выбрать его:

console.log(theElement[0]) //Return <div id='theId'> 
console.log(theElement.get(0)) //Return <div id='theId'> 

Если вы хотите, имя узла, есть свойство в HTML узловой элемент вызова nodeName которым возвращает имя капитализируются узла:

console.log(theElement[0].nodeName)// Return DIV 
+0

Большое спасибо. –

1

typeof(jQueryElementList.get(0)) вернет строку типа.

Некоторые браузеры могут вернуть это как верхний или нижний регистр, я думаю. IE, вероятно, имеет верхнюю часть (см. Testing the type of a DOM element in JavaScript). Очевидно, вы можете проверить атрибут nodeType (jQueryElementList.get(0).nodeType), чтобы определить, является ли это html-объектом/тегом.

+0

Большое спасибо. –