2
私は2つの異なる要素にgetElementsByClassName
を呼び出すとき、私は結果に矛盾のまわりで私の頭をラップに苦労しています:活字体の戻り値の型()
let section:HTMLElement = document.getElementById("mainSection");
// This returns NodeListOf<Element>
let blah1 = section.getElementsByClassName("blah");
// This returns HTMLCollectionOf<Element>
let blah2 = document.getElementsByClassName("blah");
:
は、次のコードを考えてみましょう
section
でメソッドを呼び出すと、NodeList
が返されますが、ドキュメントで呼び出すと、HTMLCollection
と表示されます。
MDN Documentationに基づいて、両方ともHTMLCollection
を返すべきではありませんか?
「HTMLElements」に無効なHTMLノードが含まれることがあることを理解します。しかし、もし私が 'getElementsByClassName()'を使っているのであれば、クラスに合った有効なHTML要素しか得られませんか?クラス名で要素を検索するメソッドを明示的に呼び出すと、返されたプレーンテキストを取得できませんでした。 – Marquizzo
'getElementsByClassName'は任意の要素で実行すると、HTML要素ではないSVG要素も返すことができます –