【发布时间】:2018-01-27 01:38:34
【问题描述】:
我正在为我的农民朋友建立一个种子电子商务网站,以帮助建立我的投资组合并为他节省一些美元。我是初学者,所以这是一次很好的学习经历。
现在,在添加到购物车之前,我在输入用于商品数量的数字输入字段时遇到了问题。我正在使用“id”标签,我知道这是错误的,但我不知道该使用什么,以便一个项目的价值不会影响另一项目的价值。
所以我的问题:
我在我的 html 中使用什么来唯一标识每个项目/产品的价值?
如何调整我的 javascript 以区分每个项目的唯一数量?
更新的 HTML
<div class="container">
<div class="row">
<div class="col-sm-4">
<div class="panel panel-success">
<div class="panel-heading"><a href="Varieties
Grains/amaranth_hopireddye.html">Hopi Red Dye</a></div>
<div class="panel-body"><a href="Varieties
Grains/amaranth_hopireddye.html"><img
src="Images/amaranth_hopireddye.jpg" class="img-responsive"
style="width:100%" alt="Image"></a></div>
<div class="panel-footer">500 seeds per packet<br>$4.00 per
Packet</div>
<div class="panel-footer"><div align="center"><input type="number"
id="orderQty001" value="1" style="width: 50px; margin-right: 10px;"><a
href="#" class="productItem btn btn-primary center-block" data-
name="Hopi Red Dye " data-s="500 seeds" data-price="400" data-
id="001">Add to Cart</a></div></div>
</div>
</div>
<div class="col-sm-4">
<div class="panel panel-success">
<div class="panel-heading"><a href="Varieties
Grains/amaranth_dedosdedios.html">Dedos de Dios</a></div>
<div class="panel-body"><a href="Varieties
Grains/amaranth_dedosdedios.html"><img
src="Images/amaranth_dedosdedios.jpg" class="img-responsive"
style="width:100%" alt="Image"></a></div>
<div class="panel-footer">500 seeds per packet<br>$4.00 per
Packet</div>
<div class="panel-footer"><div align="center"><input type="number"
id="orderQty002" value="1" style="width: 50px; margin-right: 10px;"><a
href="#" class="productItem btn btn-primary center-block" data-
name="Dedos de Dios " data-s="500 seeds" data-price="400" data-
id="002">Add to Cart</a></div>
</div>
</div>
</div>
更新的 Javascript:
var shopcart = [];
$(document).ready(function () {
outputCart();
$(".productItem").click(function (e) {
e.preventDefault();
var iteminfo = $(this.dataset)[0];
var inputId = "orderQty" + this.attr('data-id');
iteminfo.qty = document.getElementById(inputId).value;
var itemincart = false;
$.each(shopcart, function (index, value) {
//console.log(index + ' ' + value.id);
if (value.id == iteminfo.id) {
value.qty = parseInt(value.qty) + parseInt(iteminfo.qty);
itemincart = true;
}
})
if (!itemincart) {
shopcart.push(iteminfo);
}
sessionStorage["sca"] = JSON.stringify(shopcart);
outputCart();
})
我也尝试为每个元素分配一个类和唯一的 id,但是我不知道如何在我的 javascript 中获取唯一的用户输入。
【问题讨论】:
-
orderQty_001是我给出的一个示例,但不需要下划线,因此我在更新答案时将其删除。您需要从您的 id 中删除下划线。也应该是document.getElementById(inputId)而不是document.getElementById("inputId")。 -
我删除了下划线并更新了我的javascript。我的“添加到购物车”按钮仍未获得 iteminfo.qty。
-
您可以先登录
iteminfo,然后再将其推送到shopcart,看看它是什么样子的吗? -
哦...
$(".productItem")应该是$("#productItem"),试试看。 -
添加到购物车按钮仍然无效。
标签: javascript jquery html input shopping-cart