• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:HTML内の特定のクラスの中身の返り値について)

HTML内の特定のクラスの中身の返り値について

このQ&Aのポイント
  • HTML内の特定のクラス名の中身を変数に入れて別のところで使用する方法はどうすればいいか教えてください。
  • 上記のコードでは関数の外で値が取得できていません。どのように修正すればいいでしょうか?
  • 要約文3

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

  • ベストアンサー
noname#212058
noname#212058
回答No.2

回答No.1です。 捕捉読みました。条件をまとめると 1. document.write 出力は HTMLの『読み込み前』に   実行する必要があります 2. HTML内に書かれている特定のクラスを読むためには、   HTML の『読み込み後』である必要があります 3. 2.の処理で特定のクラスを読みこみ、1. の処理を実行   したいです となり、この方法では実現不可能です。 実現するには、1. の document.write を使う方法を諦めて、 HTMLの『読み込み後』でも実行可能な処理方法、例えば 『出力用の <div> 要素を作って、その InnerHTML に動的に 出力する方法』などに変更する必要があるでしょう。 その上で、元の質問に戻ります。 まず、質問者さんの window.onload を使用する方法では 『戻り値を返す』ということはブラウザの仕組み上、実現 不可能です。戻り値を返す先がありません。 『ここから別の関数を呼び出す』ことは可能ですから、HTML の出力処理を関数化し、その関数の引数に aaa の内容を渡 すようにすれば良いかと思います。

yleaf2112
質問者

お礼

ありがとうございます! 関数を別で作りページを飛ばすところまでにし、onclickでリンクを押して前のページに飛ばすことが出来ました!助かりました。

その他の回答 (1)

noname#212058
noname#212058
回答No.1

関数の外とは、どこを指しているのでしょうか? HTML の上部に <script> があって、その中で使いたいということでしょうか? もしそうだとするならば、<script> をHTMLの上部ではなく最下部に移動して、そこでdocument.getElementsByClassName("クラス名"); を実行するようにしたほうが早いかと思われます。 要は "クラス名" のタグよりも上に <script> があると <script> を読み込んだ時点では "クラス名"が読み込まれていませんので、この呼出しは失敗します。 "クラス名" のタグよりも下に <script> がると <script> を読み込んだ時点で既に "クラス名" は読み込まれているので、この呼出しは成功します。 この方式が嫌 (<script>は上部に置く決まりになっている) のであれば、"クラス名" を使用するスクリプト自体を関数化して、window.onload で呼び出すようにすることになります。

yleaf2112
質問者

補足

HTMLの上部でjsファイルを読み込んで、document.writeで書きだしたものをHTMLで表示させようとしているのが今回のそもそもの目的です。 何をしようとしているのかですが、ファイル名がindex.htmlの場合にそのHTML内に書かれている特定のクラス名内のNo~というところを抽出し~を変数として取得し、それをdocument.writeで書きだす時のアドレスとして使用したいというのを実現させようとしています。 No~かはその時によりかわるので、自動でするためにJavascriptを用いたいです。 例)最新はindex.html(No.48) それの1つ前がNo47の時は047.htmlというようになっています。 この時前のページへのリンクを付けたく、アドレスに入っているものがindex.htmlの時は前のページへのアドレスを047.htmlに書き換えたいと考えています。 これが今回やろうとしていることです。 わかりづらかったら申し訳ないです。。