質問: document.createElement("p"); document.body.appendChild(p); ``` --- **あるいは取得結果数によるのでしょうか?** ・getElementsByClassNameでも、取得結果が1件なら、[0]不要?
回答: getElementById IDはそのページで唯一でなければならないので、(もしあれば)結果は1つのエレメントであり[0]は不要です。 getElementsByClassName 結果はノードリスト(配列の様に扱える)であり、 例え結果が1つのエレメントであっても[0]が必要です(値が1つの配列と同じ意味)。 `document.body` は、 `body`要素を意味する(例えば`id="foo"`をbody要素に付ければ`document.body === document.getElementById("foo")`は`true`になる)ただ一つのエレメントですので不要です。 html 要素 から引用 > > 許可された内容 ひとつの `` 要素と、それに続くひとつの `` 要素。 > > > body 要素 から引用 > > `` 要素は、HTML 文書のコンテンツを示す要素です。`` 要素は文書中に一つだけ配置できます。 > > > 要するに、ノード検索・指定する場合にノードリスト(ノード集合)が返るような場合にインデクスによるアクセスが必要で、ノードリストにならない一つのノードの場合必要無いということですね。