【发布时间】:2021-03-30 19:05:27
【问题描述】:
嗨,我通过 JS 创建了一个点击按钮,每次点击 +1 或 -1。
我想要做的:在 Rails 中,每个循环都从 @items 创建项目。获取 JS 中的类名并编辑每个项目的数量。我该怎么办?
我试图获取 ID,但我只知道第一个工作。
The part of to get class
<div class="quantity-select">
<div class="entry value-minus"> </div>
<div class="entry value score-value"><%= uiq %></div>
<div class="entry value-plus active"> </div>
</div>
show.html.erb
<% @items.zip(@user_items_quantity) do | item, uiq | %>
<tr class="rem1">
<td class="invert-image" >
<%= link_to image_tag(item.img.thumb.url || "sushi1.jpg", class: "img-responsive" ), item %>
</td>
<td class="invert">
<%= form_with model: item.basket_items.build, url: baskets_edit_from_baskets_path(item), method: :post, remote: true do |f| %>
<div class="quantity">
<div class="quantity-select">
<div class="entry value-minus"> </div>
<div class="entry value score-value"><%= uiq %></div>
<div class="entry value-plus active"> </div>
</div>
</div>
<%= f.hidden_field :item_id, value: item.id %>
<%= f.hidden_field :quantity, class: "quantity-value" %>
<%= f.submit "edit", class: "button mt-3" %>
<% end %>
</td>
<td class="invert"><%= link_to item.name, item %></td>
<td class="invert">$ <%= link_to item.price, item %></td>
<td class="invert">
<%= link_to image_tag("close_1.png"), item_delete_in_baskets_path(item), method: :post, data: { confirm: "You sure?" }, class:"ml-2"%>
</td>
</tr>
<% end %>
<%= javascript_include_tag 'item_quantity.js' %>
我的尝试
var add = document.getElementsByClassName("value-plus");
var remove = document.getElementsByClassName("value-minus");
var scoreValue = document.getElementsByClassName("score-value");
var quantityValue = document.getElementsByClassName("quantity-value");
add.addEventListener('click', function() {
int = parseInt(scoreValue.innerHTML, 10)+1;
quantityValue.value = int;
scoreValue.textContent = int;
});
remove.addEventListener('click', function() {
int = parseInt(scoreValue.innerHTML, 10)-1;
quantityValue.value = int;
scoreValue.textContent = int;
});
【问题讨论】: