質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

Q&A

解決済

1回答

582閲覧

[javascript]Web上で画像の切り替えが反映されない

ryoma26

総合スコア6

URL

URL(ユニフォームリソースロケータ)とは、インターネット上のリソース(Webページや電子メールの宛先等)を特定するための形式的な記号の並びの事を言う。

Webサイト

一つのドメイン上に存在するWebページの集合体をWebサイトと呼びます。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

0グッド

0クリップ

投稿2021/05/16 02:54

前提・実現したいこと

一定時間ごとに画像が切り替わるプログラムを作りたいです。

発生している問題・エラーメッセージ

コンソール上では画像のURLが切り替わっているのですが、web上では画像が変わりません。

該当のソースコード

HTMl/javascript

HTMl/javascript

1<body> 2 <div id="home"> 3 <a href="service.html"><img class="big-bg" src="images/main_img01.png"></a> 4 5 </div> 6 <script> 7 8 const arr = new Array("images/main_img01.png","images/main_img02.png","images/main_img03.png"); 9 let num=0; 10 11 setInterval(()=>{ 12 if (num === 2) { 13 num = 0; 14 } 15 else{ 16 num++; 17 } 18 let img=document.getElementById("home"); 19 img.src=arr[num]; 20 21console.log(img.src); 22} 23,5000) 24</script> 25</body>

試したこと

画像のリンクの確認、コンソール上では表示されるかどうか、その他のエラーがないことの確認

補足情報(FW/ツールのバージョンなど)

使用ツール:Atom
ブラウザ:Googolechorm

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Ans. DOMの取得がうまくいっていないようです。

コンソールには確かにconsole.logの結果が表示されてsrcが書き換わっているように見えますが、
イメージ説明
上記のElementをみるとどうやら書き換えができていないようです。

こういう場合はまずfor文で回す前に一回だけの処理だけでちゃんと動くか確認してみましょう。
例えば、、、

const arr = new Array("images/main_img01.png","images/main_img02.png","images/main_img03.png"); let num=0; let img = document.getElementsByClassName("big-bg"); // ここでDOMの取得を変えてみました。 console.log(img); img[0].src = arr[1];

こうすると画像がちゃんと切り替わること確認できますよね。

まずはこういう形で実験してみましょう!

[追記]
HTMLのimgタグにidを追加してみることで楽にDOMを指定できるようにしてみました。

<!--<img>にidを追加しています。--> <a href="service.html"><img id="change_img" class="big-bg" src="images/main_img01.png"></a>
const arr = new Array("images/main_img01.png","images/main_img02.png","images/main_img03.png"); let num=0; //let img = document.getElementById("big-bg"); let img = document.getElementById("change_img"); console.log(img); setInterval(()=>{ if (num === 2) { num = 0; } else{ num++; } img.setAttribute('src', arr[num]); // img.src=と同じ意味です。 } ,5000)

投稿2021/05/16 03:07

編集2021/06/21 04:35
digitalhimiko

総合スコア142

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ryoma26

2021/05/16 05:55

解決できました!ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問