1

要素のグループを検索する場合は、getElementsByTagNameがメソッドであり、NodeListを返します。しかし、「body」を含むタグ名を探している場合、( "body")要素の後に[0]を追加する必要があるのはなぜですか?HTMLドキュメントにはbodyタグが1つだけあります。

 var body = document.getElementsByTagName("body")[0];
 body.className = "unreadable";

このようにindex[0]なしでこのコードを書くことができない理由

 var body = document.getElementsByTagName("body");
 body.className = "unreadable";

このコードを書くと、読み取り不可能なクラスがbodyタグで追加されません...なぜですか?

4

3 に答える 3

9

document.getElementsByTagName常に NodeList を返すためです。体を取得する簡単な方法を見つけたい場合は、単に使用できますdocument.body

于 2011-07-21T08:03:59.213 に答える
3

getElementsByTagNameNodeList を返します。アイテムが含まれていない可能性があります。あるかもしれません。多いかもしれませんね。をテストすることで、その中にいくつ入っているかを確認できます.length

NodeList を返したり、ElementNode を返したりすると混乱します。

于 2011-07-21T08:03:45.553 に答える
2

getElementsByTagName [docs] は常に を返しますNodeList。特定のタグを持つ要素が一度だけ存在するかどうかは問題ではありません。

関数が一貫性のない動作をするのは良くありません。

于 2011-07-21T08:03:34.240 に答える