getElementsByTagNameでhtml要素を取得しようと試みた
JavaScriptの学習の一環で簡単なゲームを作ろうと考えていました。p要素をそれぞれ、getElementById、getElementsByTagNameでhtmlの要素を取得しようとしたところ、getElementByIdでの取得は問題なく進んでいるようであるにも関わらず、getElementsByTagNameで取得した場合は下記のようなUncaught TypeErrorが出てしまい、要素の取得に失敗していることがわかりました。
まず初めにスペルミスを疑いましたが、どの文献を参考にしてもスペルミスは発見できず、原因はスペルミスではないという判断をしました。
これだけの短いコードでエラーを出しているということは、そもそもgetElementsByTagNameの理解の仕方を間違えているのだろうと考え、ありとあらゆるネットと手持ちの参考書を参照しましたが、なぜこの書き方ではエラーが出てしまうのかの解決に至らなかったため、質問させていただきました。
発生している問題・エラーメッセージ
Uncaught TypeError: b.addEventListener is not a function at window.onload
該当のソースコード
html
1--略-- 2<p id="test">Test</p> 3--略-- 4
js
1 2window.onload = function() { 3 var a = document.getElementById('test'); 4 var b = document.getElementsByTagName('p'); 5 6 function hello() { 7 alert('Hello'); 8 } 9 10 a.addEventListener('click', hello, false); 11 b.addEventListener('click', hello, false);//ここでエラーが出ている 12} 13
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/31 08:00