• 締切済み

画像を貼り出してその後、その画像をクリックすると大きく表示されるように

画像を貼り出してその後、その画像をクリックすると大きく表示されるようにしたいのですが、どうしたら良いかわかりません。 <html> <head> <title>画像を大きくする</title> <script type="text/javascript"> <!-- var imagetachi = 5; //イメージの切り替え function kirikae(num){ document.main.src = "big/photo" + num + ".jpg"; } // --> </script> </head> <body> <center> <script type="text/javascript"> <!-- //サムネールの書き出し for (i=1; i <=imagetachi; i++) { document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(i)">'); } // --> </script> <hr> <img src="big/photo1.jpg" name="main"> </center> </body> </html> どうやらkirikae(i)をkirikae(' + i +')にすれば良いとまではわかったのですが、なぜ(' + i +')にしないといけないのかがわかりません。 (' + i +')にすると関数の処理が document.main.src = "big/photo" + + i + + ".jpg";になってしまいませんか?? 初心者なので+ i +の意味がよくわかりません。 よろしくお願い致します。

みんなの回答

  • zeff
  • ベストアンサー率69% (137/198)
回答No.4

document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(i)">'); ↓ document.write('<img src="small/photo' + i + '.jpg" onclick="kirikae(' + i + ')">'); (' + i +')で見てしまうからいけない。 分解したほうがわかりやすい。 document.write( '<img src="small/photo' + i + '.jpg" onclick="kirikae(' + i + ')">' ); シングルクォーテーションで囲われているブロックが文字列ですので、 '.jpg" onclick="kirikae(i)">' にしてしまうと、それがひと塊に文字列として扱われてしまう、ということです。 その外に出せば変数として扱われて値が変わる。

  • zeff
  • ベストアンサー率69% (137/198)
回答No.3

要は足し算と同じなわけですから、 ○D = A + B + C; ×D = ABC;

makiko3300
質問者

補足

すみません。 いまだによくわかりません。 forの条件でiがimagetachiの数になるまで繰り返すことになっていますよね。 それでiは繰り返すたびに1ずつ増えるようになっています。 なら、onclickの方に入っているiも1つずつ増えないのでしょうか? なぜimg src=の中にあるiだけが増えるのでしょうか?? kirikae(+i+)の+i+とはその前に使っている<img src="small/photo' + i + '.jpg"の中にある+i+を使うと言う意味なのでしょうか? バカな質問だと思うのですが、すみませんが教えてください。

  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.2

文字列なので、じかに書き出してみれば… ◆コード for (var i=1; i<4; i++) {  document.write('onclick="kirikae(i)"' + '<br>'); } ◇実行結果  onclick="kirikae(i)"  onclick="kirikae(i)"  onclick="kirikae(i)" ◆コード for (var i=1; i<4; i++) {  document.write('onclick="kirikae(' + i + ')"' + '<br>'); } ◇実行結果  onclick="kirikae(1)"  onclick="kirikae(2)"  onclick="kirikae(3)"

makiko3300
質問者

補足

kirikae(i)のままだとiが文字列と認識されてしまうということでしょうか? +i+はiが数値として認識するために必要な記述ということでしょうか?

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

document.main.src = "big/photo" + + i + + ".jpg";になってしまいませんか?? そんなことはない。よく見て!  document.write(    '<img src="small/photo'     + i +  <== iは1からimagetachiの値まで1づつ増える   '.jpg" onclick="kirikae(i)">'  ); となってるでしょ。 だから  <img src="small/photo1.jpg" onclick="kirikae(i)">  <img src="small/photo2.jpg" onclick="kirikae(i)">  <img src="small/photo3.jpg" onclick="kirikae(i)">  ----- が書き出される。

makiko3300
質問者

補足

書き方が悪かったみたいですね。 すみません。 kirikae(i)→プログラムがちゃんと動かない kirikae(+i+)→プログラムはちゃんと動作する なぜiの前後に+を書き込む必要があるのか訊きたかったのです。 そもそも+i+ってどういう意味なのでしょうか?

関連するQ&A