gpt4 book ai didi

javascript - 购物车中出现重复的商品

转载 作者:行者123 更新时间:2023-12-03 09:46:04 26 4
gpt4 key购买 nike

我正在尝试在静态网站上构建一个购物车。项目显示在表格上。我从头开始构建了这个购物车,没有使用外部 jQuery 购物车库。

有一个功能我似乎无法使用:当用户添加购物车中已存在的商品时,它应该只增加数量,而不是将该商品添加到表格中。

这是一个JSFiddle link包含我迄今为止实现的所有内容和一个工作演示,但您还可以看到下面的代码。

这是添加项目的 JS:

$( "#addBtn" ).click(function() {
var item = $("#orderMenu option:selected").text();
var qty = $("#orderQty option:selected").text();

var newRowContent = "<tr><td>" + qty + "</td><td>" + item + "</td>";

$("#cart-info tbody").append(newRowContent);
});

为了简单起见,这是简化的 HTML:

<table class="table" id="cart-info">
<thead>
<tr>
<th>#</th>
<th>Item</th>
</tr>
</thead>
<tbody>

</tbody>
</table>

<select id="orderMenu">
<option>Foo</option>
<option>Bar</option>
</select>

<select id="orderQty">
<option>1</option>
<option>2</option>
<option>3</option>
</select>

<button id="addBtn">ADD TO CART</button>

这是我想转换为 jQuery 的伪代码,但不知道如何转换。

(对奇怪的伪代码/jQuery 混合体表示歉意,我仍在学习 jQuery)

for each <td> in #cart-info {
if (<td>.html() == item) {
qtyCell = the previous <td>
oldQty = Number(qtyCell.text())
newQty = oldQty + qty
qtyCell.html(newQty)
exit for loop
}
}

网站本身是纯HTML/CSS/JS编写的,因此它是一个完全静态的网站。

提前非常感谢您!

最佳答案

检查这个fiddle
new fiddle使用每个选项的值来确定它是否已添加到表中:

$( "#addBtn" ).click(function() {
var item = $("#orderMenu option:selected").text();
var item_val = $("#orderMenu").val();
var qty = $("#orderQty option:selected").text();

var newRowContent = "<tr><td class='qty'>" + qty + "</td><td data-val='"+item_val+"'>" + item + "</td>";
if ($("#cart-info tbody [data-val='"+item_val+"']").length < 1)
$("#cart-info tbody").append(newRowContent);
else {
var new_qty = parseInt($("#cart-info tbody [data-val='"+item_val+"']").prev('.qty').text())+parseInt(qty);
$("#cart-info tbody [data-val='"+item_val+"']").prev('.qty').text(new_qty);
}
});

编辑:

固定 fiddle 网址

编辑2

fiddle更新数量

关于javascript - 购物车中出现重复的商品,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31028722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com