P粉9044059412023-08-25 17:17:22
配列をオブジェクトとして使用し、getElementbyId
と
getElementsByClassName
は:
getElementbyId
は Element オブジェクト < /a> を返します。その ID を持つ要素が見つからない場合は null を返しますgetElementsByClassName
は live HTMLCollection< /a> を返します。一致する要素が見つからない場合、長さは 0https://www.w3.org/TR/2008/WD-html5-20080610/dom.html#getelementsbyclassname
https://developer.mozilla.org/en-US/docs/Web/API/Document/getElementById
コードに次の行を含めます:
getElementByClassName は配列を返し、その配列 には スタイル
プロパティを持たないため、 は期待どおりに動作しません。各 要素 は反復によってアクセスされます。 < /code>
だからこそ関数
getElementById
style プロパティにアクセスできるようになります。
P粉5205457532023-08-25 16:48:41
#getElementById コードは、ID が一意である必要があるため機能します。そのため、関数は常に 1 つの要素 (見つからない場合は null) のみを返します
)。
getElementsByClassName、
getElementsByName
、
getItemByTagName
、および
getElementsByTagNameNS
要素の反復可能なコレクションを返します。
getElement は
単数形 を暗黙的に示し、getElements は
複数形 を暗黙的に示します。
querySelector も単一の要素を返し、 a>querySelectorAll
code> は反復可能なコレクションを返します。
NodeList または HTMLCollection
a>.一个> です。
#getElementsByName と
querySelectorAll はどちらも
ノード リスト を返すように指定します。その他 getElementsBy * メソッド
は
HTMLCollection の戻り値を指定しますが、ブラウザのバージョンによってはこれが異なる方法で実装されることに注意してください。 < code>
これら 2 つのコレクション型は、要素、ノード、または同様の型と同じプロパティを提供しません。そのため、
…(
…)## から
#style の読み取りに失敗した理由。
言い換えると、
NodeList または
HTMLCollection には
style がなく、
Element のみに
style があります。
これらの「配列のような」コレクションは、アクセスするために反復処理する必要がある 0 個以上の要素のリストです。
配列と同じように反復処理できますが、" https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference /Global_Objects/Array とは異なることに注意してください。 ” rel="noreferrer">arrays。
最新のブラウザでは、
Array.from を使用でき、その後、
forEach やその他の 配列メソッド (反復メソッドなど) を使用できます。 :
リーリー
Array.from または iteration メソッドをサポートしていない古いブラウザでも、
を使用できます。
その後、実際の配列のように反復処理できます。
リーリー
NodeList または
自体を反復処理することもできますが、ほとんどの場合、これらのコレクションは live
(MDN Document ##) であることに注意してください。 #、
DOM 仕様)、つまり、DOM が変更されると更新されます。
したがって、ループ中に要素を挿入または削除する場合は、誤って いくつかの要素をスキップしたり したり、 無限ループを作成したりしないように注意してください 。
MDN ドキュメントでは、メソッドがライブ コレクションを返すか静的コレクションを返すかを常に示す必要があります。
たとえば、NodeList は、最新のブラウザの forEach
単純な for
ループを使用することもできます:
リーリー
ナレーション:
.childNodes は、
NodeList および
< /a>.children を生成します。 live
HTMLCollection を生成するため、これら 2 つのゲッターも注意して扱う必要があります。
DOM クエリを短くし、「要素」と「要素のコレクション」に抽象化レイヤーを作成する jQuery などのライブラリがあります。
リーリー