Поскольку вы новичок, я собираюсь указать несколько основных фактов, которые могут помочь вам понять, что вы наблюдаете.
JavaScript слабо типизированный
Объекты в JavaScript делать имеют тип, но переменные не наберется, то любая переменная может принимать любой объект любого типа. Тип литья не требуется, и это не возможно (и фактически строка (HTMLSpanElement) document.getElementById('lblMsg')
является синтаксической ошибкой).
типы HTML элементы
HTMLSpanElement
тип. Ну не совсем. Это DOM-интерфейс, который для удобства обрабатывается как собственный тип объекта всеми современными браузерами. Большинство элементов HTML имеют тип основного интерфейса.
Точка интерфейсов должна раскрывать набор методов, свойств или событий, доступных для всех реализаций. У вас уже есть ссылка MDN для HTMLSpanElement
: https://developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement.
Тестирование типа
Чтобы проверить, если объект является экземпляром определенного типа, мы можем использовать obj instanceof Type
. В этом случае:
if (document.getElementById('lblMsg') instanceof HTMLSpanElement)
{
...
}
Тип наследования всегда соблюдается.
document.getElementById('lblMsg') instanceof Object // true
Получение типа объекта
Чтобы получить тип HTML-элемента, мы используем element.constructor
, как в
document.getElementById('lblMsg').constructor
Если ввести это в консоли браузера, вы см. что-то вроде
`function HTMLSpanElement() { [native code] }`
Не Удивляться. Типы объектов - это функции в JavaScript. Если бы мы были просто заинтересованы в названии типа этого объекта, мы могли бы использовать
document.getElementById('lblMsg').constructor.name
что дает строку "HTMLSpanElement"
Этот метод определения типа объекта не 100% защиты, но это работает для всех встроенные объекты.
https: //developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement – Teemu