• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:配列要素をHTMLに書く方法?)

配列要素をHTMLに書く方法

このQ&Aのポイント
  • 配列要素をHTMLに書く方法について説明します。
  • プラウザで表示すると、[object HTMLCollection]と表示される問題があります。
  • 解決するためには、要素を文字列に変換して表示する必要があります。

質問者が選んだベストアンサー

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 >http://www.site-cooler.com/kwl/jslibrary/5.htm >上記のサイトの中段の説明では、「document.write(strArray) ; 」左記の記述方法で、要素がカンマ区切りで出力されると、説明されています。 上記のstrArrayは普通の(って言ったらちょっと語弊がありますが)配列です。 ただ今回の場合のitemは上記配列とは違い、HTMLCollectionというものの配列であってそのまま出力が出来ません。 なので1要素ずつループにてHTMLCollectionを配列より取得して表示するという動きになっています。 >また、「.innerHTML」を使用していますが、「document.write("文字列のテスト");」では、「.innerHTML」を使用しなくても表現できています。 >「.innerHTML」は、読み込みが済んだページを書き換える時に使うと思います。 別にページを書き換えるときに使うものではなくHTMLCollectionのinnerHTMLというプロパティを取得しています。 よって<h6>のタグの内容が表示できています。 書き換えにも利用するし、取得した要素の内容を取得する際にも利用します。 >今の場合は、読み込み前に書くのですから、「document.write()」でOKではないでしょうか? document.writeはブラウザに対して文字を出力する関数、innerHTMLとはまったく関係ありません。 >それとも、引数に変数が使われている時には、「.innerHTML」を使用するべきなのでしょうか? 今回の場合はitem配列の中身がHTMLCollectionであったため、item[0].innerHTMLとして<h6>~</h6>の内容を取得しています。 使用するべきというか、使用しないといけなかったわけです。 FirefoxのアドオンにあるFirebugなんかを利用して変数の中身を可視化するといろいろ見えてくるかもしれません。

prime2011
質問者

お礼

適切なご指導頂きまして有難うございます。 まだ、完全な理解は出来ていませんが、解決の道筋が付きました。 あとはじっくり調べて考えれば分かると思います。 誠に有難うございました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 <script type="text/javascript" language="javascript"> <!-- var item = document.getElementsByTagName('h6'); document.open(); document.write("文字列のテスト"); for ( var i = 0; i < item.length; i ++ ) { if ( i > 0 ) document.write ( ',' ); document.write(item[i].innerHTML); } 以上のように、配列分のループを実行します。

prime2011
質問者

お礼

回答して頂きまして、ありがとうございます。 教えて頂いたプログラムを動かすと思い通りに表現されました。 for ( var i = 0; i < item.length; i ++ ) { if ( i > 0 ) document.write ( ',' ); document.write(item[i].innerHTML);} 「document.write(item);」に代えて、上記の様に書けば良いと言う事ですが、 もっと短い記述は不可能でしょうか? http://www.site-cooler.com/kwl/jslibrary/5.htm 上記のサイトの中段の説明では、「document.write(strArray) ; 」左記の記述方法で、要素がカンマ区切りで出力されると、説明されています。 また、「.innerHTML」を使用していますが、「document.write("文字列のテスト");」では、「.innerHTML」を使用しなくても表現できています。 「.innerHTML」は、読み込みが済んだページを書き換える時に使うと思います。 今の場合は、読み込み前に書くのですから、「document.write()」でOKではないでしょうか? それとも、引数に変数が使われている時には、「.innerHTML」を使用するべきなのでしょうか? 宜しければ、再度の助言を頂けますと嬉しいです。 よろしくお願いします。

すると、全ての回答が全文表示されます。

関連するQ&A