プログラミング初学者です。単純なミスだとは思いますが、解決することができません。
よろしくお願い致します。
前提・実現したいこと
下記のサイトと同様の物を、まず作成してみようと思い、やってみたのですがうまくできません。
https://into-the-program.com/javascript-get-checked-count/
Uncaught TypeError: Cannot read property 'addEventListener' of null
というエラーが出ているので、addEventListenerが存在していないっというエラーだと思うのですが
どのようにしたら解決できるのでしょうか??
発生している問題・エラーメッセージ
javascript
1//チェックボックスを取得する 2const el = document.getElementsByClassName("checks"); 3//カウントボタンを取得する 4const btn = document.getElementById("btnn"); 5 6//チェック済みのチェックボックスの数を返す 7const getCheckedCount = () => { 8 9 let count = 0; 10 11 for (let i = 0; i < el.length; i++) { 12 if (el[i].checked) { 13 count++; 14 } 15 } 16 alert(count); 17}; 18 19//ボタンをクリックした時に「getCheckedCount()」を呼び出す 20btn.addEventListener("click", getCheckedCount, false);
html
1<div id="app"> 2 <form> 3 <label> 4 <input class="checks" type="checkbox" name="lang" value="javascript">JavaScript 5 </label> 6 <label> 7 <input class="checks" type="checkbox" name="lang" value="jquery">jQuery 8 </label> 9 <label> 10 <input class="checks" type="checkbox" name="lang" value="html">HTML 11 </label> 12 <button id="btn" type="button">Count</button> 13 </form> 14</div>
試したこと
btn.addEventListener("click", getCheckedCount, false);
の場所がダメなのかと思い、上に設置したりしましたが、同じエラーで解決することができませんでした。
ご助力のほどよろしくお願いします。
###追記
btnのコードをミスしていた為、修正しました。
//チェックボックスを取得する const el = document.getElementsByClassName("checks"); //カウントボタンを取得する const btn = document.getElementById("btn"); //チェック済みのチェックボックスの数を返す const getCheckedCount = () => { let count = 0; for (let i = 0; i < el.length; i++) { if (el[i].checked) { count++; } } alert(count); }; //ボタンをクリックした時に「getCheckedCount()」を呼び出す btn.addEventListener("click", getCheckedCount, false);
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/06 00:45