- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:イベントに適切な値が伝わらない)
イベントに適切な値が伝わらない
このQ&Aのポイント
- 0から9までidをもつdivを用意し、クリックしたらそのidを表示したいが、どれをクリックしても「10」と表示される。なぜだろう?
- JavaScriptの関数`sample`を作成し、0から9までのdiv要素にクリックイベントを追加する。しかし、クリックしても表示されるのは「10」という値のみ。
- HTMLの`div`要素に対してidを設定し、JavaScriptの`sample`関数でクリックイベントを設定するが、クリックした要素のidが正しく表示されない。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
今回のトラブルに直接関係はありませんがidに数字だけのものは 指定できません。 今回はiがオブジェクトでわたってるんじゃないですか? こんな風にしてみてはどうでしょう? <script> function sample(){ for(i=0; i<10; i++){ var obj = document.getElementById('id'+i); obj.onclick = sample_alert; } } function sample_alert(){ alert("i="+this.id); } window.onload = function(){ sample(); } </script> <?PHP for($i=0; $i<10; $i++){ print "<div id=\"id{$i}\">{$i}</div>\n"; } ?>
お礼
ご返答ありがとうございます。 そのやり方でできました。ありがとうございます。 単なる変数だと思ってたiがオブジェクトになってるわけですか・・・ 自身もう少しオブジェクトについて理解していかないと駄目ですね・・・