前提・実現したいこと
現在javascriptで、クリックしたときに色を変えたり要素を削除する処理を追加しています。
アプリの概要としては、追加したメモを非同期で1回目のクリックで色を変えて、2回目のクリックで削除する形です。
発生している問題・エラーメッセージ
jsの二行目のgetElementsByClassNameで該当するもの全てに動作を行いたいのですが、以下のエラーがでます。
memoクラスにIDを付与してgetElementsByIdにするとエラーがでずに処理されるのですが、これは何故なんでしょうか?
Uncaught TypeError: changeCollarButton.addEventListener is not a function
該当のソースコード
js
1window.addEventListener('load', function(){ 2 const changeCollarButton = document.getElementsByClassName('memo') 3 4 changeCollarButton.addEventListener('click', function(){ 5 changeCollarButton.setAttribute("style", "background-color:#808080;") 6 }) 7 const element = document.querySelector('section') 8 changeCollarButton.addEventListener('click', function(){ 9 element.remove() 10 11 }) 12})
ruby
1<div class="memos"> 2 <% @memos.each do |memo| %> 3 <section> 4 <div class="memo"> 5 <div class="memo-item"><%= memo.item %></div> 6 <div class="memo-text"><%= memo.text %></div> 7 </div> 8 </section> 9 <% end %> 10</div>
試したこと
エラーを調べたところ、タイプミスによることが多いのだそうですが、ID付与時は処理されることからタイプミスとは考えづらいです。(あったらすみません)
foeEachを使うのかなとも思いましたが、別のエラーが大量にでてしまったのでいったんやめました。
console.logでchangeCollarButtonの値が出てきたので、読み込めていることは確認しました。
補足情報(FW/ツールのバージョンなど)
ruby '2.6.5'
gem 'rails', '~> 6.0.0'
gem 'mysql2', '0.5.3'
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/10/19 08:13
2020/10/19 08:16
退会済みユーザー
2020/10/19 08:27
2020/10/19 08:35