2016-09-06 3 views
2

Я изучаю javascript.Что используется для HTMLSpanElement (и других)

var label = document.getElementById('lblMsg'); 

Если я осмотрю элемент с помощью F12, его можно описать как элемент HTMLSpanElement. Я не могу отличить элемент от его типа, например:

var label = (HTMLSpanElement) document.getElementById('lblMsg'); 

Так что же использовать для HTMLSpanElement? Имеются ли какие-либо свойства, отличные от других элементов HTMLElements?

+1

https: //developer.mozilla.org/en-US/docs/Web/API/HTMLSpanElement – Teemu

ответ

1

Поскольку вы новичок, я собираюсь указать несколько основных фактов, которые могут помочь вам понять, что вы наблюдаете.

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% защиты, но это работает для всех встроенные объекты.

+0

Отличный старт. Спасибо. –

+0

@ReBootTheUniverse Рад помочь. –

Смежные вопросы