実現したいこと
こんにちは。JavaScriptの勉強を独学でしている者です。
イベントハンドラの引数 e を使って、htmlのpタグ内のテキストを書き換えられるようにしたいです。
前提
pタグにカーソルを乗せると、pタグに挟まれたテキストが書き換えられるようにするため、
pタグにonmouseover属性を追加し、イベントハンドラを登録しました。
ところが、MicrosoftEdgeで画面表示してみると、下記のエラーが表示されてしまい、イベントハンドラを実行してくれません。
発生している問題・エラーメッセージ
Uncaught TypeError: Cannot read properties of undefined (reading 'target')
該当のソースコード
JavaScript
1<!DOCTYPE html> 2<html> 3 <head> 4 <meta charset="UTF-8"> 5 </head> 6 <style> 7 p { 8 background-color: aquamarine; 9 } 10 </style> 11 <body> 12 <h3>今日の朝ご飯</h3> 13 <p onmouseover="morning()">白ご飯,目玉焼き</p> 14 </body> 15 <script> 16 const morning = function(e) { 17 e.target.textContent = "食パン,ヨーグルト"; 18 console.log(e); 19 }; 20 </script> 21</html>
試したこと
- 16行目をコメントアウトして、17行目でEventオブジェクト e をコンソール表示させると、"undefined"と表示されてしまいました。
- onmouseover属性をonclick属性に変えても、同様のエラーメッセージが出てしまいます。
- JavaScriptのコードの実行タイミングが問題かと思い、scriptタグをbodyタグの前に置いてみましたが、Eventオブジェクトをコンソール表示結果はundefinedでした。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2023/10/16 10:41