- ベストアンサー
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>
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
#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>
その他の回答 (3)
- notnot
- ベストアンサー率47% (4900/10358)
>ただ、これだとできないみたいです…。 images[arg] の部分を間違えて、images(arg) にしてるとか?
お礼
すみません、先ほどのスクリプトでできました。 教えて頂いたほうは、コピペしたのですが、 onclick="myFunc('stage')"に ' を付けるのを忘れていました…。 不注意で申し訳ないです。再度の回答有り難うございました。
- saieikoku
- ベストアンサー率0% (0/1)
function myFunc(arg){ eval("document."+arg).src = "pic_b.jpg"; } ※詳しく知りたいなら、"javascript eval"で検索してみてください
お礼
こちらのやり方でもできました。 教えて頂き、有り難うございます。
- notnot
- ベストアンサー率47% (4900/10358)
function myFunc(arg){ document.images[arg].src = "pic_b.jpg"; } かな。テストしてませんけど。
お礼
回答ありがとうございます。 ただ、これだとできないみたいです…。
お礼
回答有り難うございます。 再度試してみたところ#1でできました。 こちらの不注意で申し訳ないです。 なるほどnameは非推奨なんですね。勉強になります。 参考にさせて頂きます。