2016-09-06 15 views
2

私はJavaScriptを学んでいます。HTMLSpanElement(および他のもの)の用途は何ですか

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

要素をF12で検査すると、HTMLSpanElementとして記述されます。要素をその型にキャストすることはできません。

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

HTMLSpanElementにはどのような用途がありますか?他のHTMLElementsとは異なるプロパティを持っていますか?

+1

https://developer.mozilla。org/ja-ja/docs/Web/API/HTMLSpanElement – Teemu

答えて

1

初心者であるため、私は、あなたが何を観察しているかを理解するのに役立ついくつかの基本的な事実を指摘します。 JavaScriptが弱いJavaScriptの

オブジェクトのタイプされ

は種類がありますが、変数がタイプされていない、すなわち、任意の変数任意の型の任意のオブジェクトを取ることができます。型キャスティングは不要で、実際には可能です(実際は(HTMLSpanElement) document.getElementById('lblMsg')という行は構文エラーです)。

HTML要素の種類

HTMLSpanElementがタイプです。まあ、実際にはありません。これはDOMインタフェースです。利便性のために、最新のすべてのブラウザでネイティブオブジェクト型として扱われます。ほとんどのHTML要素には、メインインターフェイスの種類があります。

インターフェイスのポイントは、すべての実装で使用できる一連のメソッド、プロパティ、またはイベントを公開することです。あなたは既にHTMLSpanElementのMDNリンクを持っています: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要素のタイプを取得するには、我々は

document.getElementById('lblMsg').constructor 

のように、element.constructorを使用し、オブジェクトの型になるの取得しますのようなものを参照

`function HTMLSpanElement() { [native code] }` 

Do not like驚いている。オブジェクト型はJavaScriptの関数です。私たちは、このオブジェクトの型の名前にだけ興味を持っていた場合、我々は、オブジェクトのタイプを決定するこの方法は100%確実なない文字列"HTMLSpanElement"

を生み出す

document.getElementById('lblMsg').constructor.name 

を使用することができますが、それはすべてのために働きます組み込みオブジェクト。

+0

優れたスタート。ありがとうございました。 –

+0

@ReBootTheUniverseお手伝いします。 –

関連する問題