前提・実現したいこと
railsでEcサイト的なシステムを作っています。
したいことはcheckoutページにて各商品の個数を一個単位で選択できるようにしたいです。(具体的にはプラス、マイナスのボタンを作り個数選択する。)
@itemsと@user_items_quantityという変数があり、そこにインデックス番号を付けています。
そこで今考えていることはdiv classにそのインデックス番号を付与し,jsでこのクラスを所得。
そして各商品の編集した個数を表示したいです。
しかしながらjsにて一つ一つの商品のdiv class with index の取得がうまくいきません。
js for roopで回すことも考えましたが、まとまりません。
どのように実装すればいいですか?
発生している問題・エラーメッセージ
_user_basket_items.html.erb <% @items.zip(@user_items_quantity).each.with_index(1) do | (item, uiq), index | %> <div class="entry value-minus quantity-minus[#{index}]" id="value-minus"> </div> <div class="entry value score-value quantity-score[#{index}]" id="score-value"><%= uiq %></div> <div class="entry value-plus active quantity-plus[#{index}]" id="value-plus"> </div> <% end %>
item_quantity.js var add = document.getElementsByClassName( "quantity-plus" )["#{index}".to_i]; var remove = document.getElementsByClassName( "quantity-minus" )["#{index}".to_i]; var scoreValue = document.getElementsByClassName( "quantity-score" )["#{index}".to_i]; var int = 0; add.addEventListener('click', function() { int = parseInt(scoreValue.innerHTML, 10)+1; scoreValue.innerHTML = int; }); remove.addEventListener('click', function() { int = parseInt(scoreValue.innerHTML, 10)-1; scoreValue.innerHTML = int; });
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。