• ベストアンサー

javascript 初心者です 関数について

javascript 初心者です。 下記のスクリプトでmyFunc()の部分に引数をつかって、 function myFunc(arg){ document.arg.src = "pic_b.jpg"; } <p onclick="myFunc('stage')">Bに入れ替え</p> のようにしたいのですが、うまくいきません…。 正しいスクリプトを教えてください。 よろしくお願いします。 <html> <head> <script type="text/javascript"> <!-- function myFunc(){ document.stage.src = "pic_b.jpg"; } --> </script> </head> <body> <p onclick="myFunc()">Bに入れ替え</p> <img src="pic_a.jpg" name="stage"> </body> </html>

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#1でいけると思いますが、なにか特殊なブラウザなのでしょうか? ちなみにnameはユニークを保証しないので非推奨です。 無理にやるならこんな感じで・・・・ <html> <head> <script type="text/javascript"> function myFunc(arg){ var tags=document.getElementsByTagName("img"); for(var i=0;i<tags.length;i++){ if(tags[i].name==arg) tags[i].src="2.jpg"; } } </script> </head> <body> <p onclick="myFunc('stage')">Bに入れ替え</p> <img src="1.jpg" name="stage"> <img src="1.jpg" name="stagex"> <img src="1.jpg" name="stage"> <img src="1.jpg" name="stagey"> <img src="1.jpg" name="stage"> </body> </html>

shiraito
質問者

お礼

回答有り難うございます。 再度試してみたところ#1でできました。 こちらの不注意で申し訳ないです。 なるほどnameは非推奨なんですね。勉強になります。 参考にさせて頂きます。

その他の回答 (3)

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.4

>ただ、これだとできないみたいです…。 images[arg] の部分を間違えて、images(arg) にしてるとか?

shiraito
質問者

お礼

すみません、先ほどのスクリプトでできました。 教えて頂いたほうは、コピペしたのですが、 onclick="myFunc('stage')"に ' を付けるのを忘れていました…。 不注意で申し訳ないです。再度の回答有り難うございました。

回答No.2

function myFunc(arg){ eval("document."+arg).src = "pic_b.jpg"; } ※詳しく知りたいなら、"javascript eval"で検索してみてください

shiraito
質問者

お礼

こちらのやり方でもできました。 教えて頂き、有り難うございます。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.1

function myFunc(arg){ document.images[arg].src = "pic_b.jpg"; } かな。テストしてませんけど。

shiraito
質問者

お礼

回答ありがとうございます。 ただ、これだとできないみたいです…。