• ベストアンサー

getElementByIdでonClick内を書き換える方法

お尋ねします。 適当なIDを振ったaタグ内の各プロパティを画像の切り替えに応じて 書き換えるスクリプトを試しています。 srcや画像の切り替えなどはうまくいくのですが、 onclick内だけうまく書き換えができません。 onclickはイベントハンドラだから無理という気がするのですが、 なにか方法はないでしょうか。 以下のようなスクリプトを書いています。 myImageName = 0; myImageLink = 1; myImageTarget = 2; myclick = 3; myImage = new Array(); myImage[0]= new Array("01.jpg","ttp://aa.com/","_top","alert('HELLO')"); myImage[1]= new Array("02.gif","ttp://bb.com/","_blank","alert('HI')"); i = 0; function aaa(){ document.getElementById("banner").src = myImage[i][myImageName]; document.getElementById("banner").href =myImage[i][myImageLink]; document.getElementById("banner").target =myImage[i][myImageTarget]; document.getElementById("banner").onclick =myImage[i][myclick]; } ※あとはタイマー用のスクリプトが続きます。 記述が間違っている気はするのですが、 解決策がわかりません。 よろしくお願いいたします。

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

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.1

Function関数で文字列を関数オブジェクトにしてやります。 document.getElementById("banner").onclick = new Function(myImage[i][myclick]);

casionet
質問者

お礼

ちょっと苦戦しましたが、できました! 関数にしないといけないんですね。 勉強になりました。 ありがとうございました。

その他の回答 (1)

  • Dumper
  • ベストアンサー率28% (24/84)
回答No.2

文字列にせず関数を渡す。 myImage[0]= new Array("01.jpg","http://aa.com/","_top",function(){ alert('HELLO')}); myImage[1]= new Array("02.gif","http://bb.com/","_blank",function(){ alert('HI')});

casionet
質問者

お礼

この方法でもできました! いずれにしても文字列にするから動かないということですね。 ありがとうございました。

関連するQ&A