前提・実現したいこと
JavaScriptの配列を使った課題をしています。
①"1.png""2.png"...といったファイル名を番号順にした画像を用意
②配列の長さを指定して、それぞれに数字を代入する。
③代入された数字を使って、"[配列要素].png"という形で画像を作成する。
④ボタンを押すごとに画像が変わっていく。
という流れを作りたいです。
発生している問題・エラーメッセージ
array, for, attrを使っていますが、
それぞれの理解が不十分なため、どう組み立てていけばいいのか悩んでいます。
画像は"1.png""2.png""3.png""4.png""5.png""6.png"の6個を用意しています。
下記のコードでは、ボタンを押すと"6.png"の画像が表示され、途中の"2.png"~"5.png"が表示されません。
配列に一個ずつ要素を格納すれば組み立てることが出来たのですが、数が増えた場合にカウンターを使って処理をしたいです。
javascript
1var pic = new Array( 2 "1.png", 3 "2.png", 4 "3.png", 5 "4.png", 6 "5.png", 7 "6.png" 8); 9var no = 0; 10var le = pic.length; 11 12function f(){ 13 if(no < le-1){ 14 no++; 15 $("#a").attr("src",pic[no]); 16 }else{ 17 alert("これ以上すすめません。"); 18 } 19}
該当のソースコード
下記がうまく処理出来ていないコードです。
javascript
1var arr = new Array(6); //格納する場所を用意 2var no = 1; //変数を代入 3 4function f(){ 5 for(var i = 0; i < arr.length; i++){ //配列の長さまで処理を繰り返す 6 arr[i] = no; //変数の値を格納 7 no++; //変数の値を増やしていく 8 $("#a").attr("src",arr[i] + ".png"); //id=aの属性を変更 9 } 10}
html
1<div> 2 <img id="a" src="1.png" alt="" /> 3</div> 4<form method="post"> 5 <input type="button" value="→すすむ" id="forward" onclick="f()"> 6</form>
試したこと
配列に宣言する方法を試す。
alertやdocument.writeを使って、配列要素が一個ずつ取得できることを確認する。
if文も考えましたが、どこでどう分岐させたら良いのか分からずです。
補足情報(FW/ツールのバージョンなど)
勉強中のため、意図もしっかり伝えることが出来ていないかもしれませんが
何卒宜しくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/03/30 03:14
2020/03/30 03:36