求助!做购物网站的购物车怎么循环遍历出加入购物车的商品并且用js实现全选,反选,数量选择

q790114736 2016-03-25 09:11:13
做购物网站的购物车怎么循环遍历出加入购物车的商品并且用js实现全选,反选,数量选择,删除商品等等。
谢谢大神们
...全文
562 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
kwc1314 2017-12-20
  • 打赏
  • 举报
回复
楼主,求分享。
代号1024 2016-04-01
  • 打赏
  • 举报
回复
//#region 编辑 var elBuyEvent = page.find(".j_BuyEvent"), elOtherEvent = page.find(".j_OtherEvent"), elGoodsList = page.find(".j_GoodsList"); page.find(".j_Edit").bind("tap", function (ev) { ev.preventDefault(); var me = $(this); me.toggleClass("active"); if (me.hasClass("active")) { me.text("完成"); elBuyEvent.hide(); elOtherEvent.show(); elCheckAll.attr("data-type", "edit"); elGoodsList.addClass("edit"); } else { me.text("编辑"); elBuyEvent.show(); elOtherEvent.hide(); elCheckAll.attr("data-type", "buy"); elGoodsList.removeClass("edit"); totalPrice(); } }); //#endregion //#region 判断是否选中 var skuidarr = null; var cartidarr = ""; function isCheck() { cartidarr = ""; var isCheck = false; skuidarr = new Array(); page.find(".j_CheckSingle").each(function () { if ($(this).prop("checked")) { skuidarr.push($(this).val()); if (cartidarr != "") { cartidarr += "," + $(this).attr("data-value"); } else { cartidarr = $(this).attr("data-value"); } } }); if (skuidarr.length > 0) { isCheck = true; } return isCheck; } //#endregion //#region 删除 page.find(".j_DeleteAll").bind("tap", function (ev) { ev.preventDefault(); if (!isCheck()) { $setAlert("请选择需要删除的商品"); return false; } $confirmDialog("确定删除选中的商品吗?", function () { //TODO:删除 page.find(".j_CheckSingle").each(function () { var me = $(this); if (me.prop("checked")) { var id = me.attr("data-value"); //TODO:删除 $.ajax({ async: false, data: { id: id }, url: 'cart.html/DeleteCart', type: "post", success: function (resText, state, xhr) { if (xhr.valid) { $Goto("cart.html"); } }, error: function () { alert(arguments[1]); } }); } }); }); }); page.find(".j_Delete").bind("tap", function (ev) { ev.preventDefault(); var me = $(this); $confirmDialog("确定删除该商品吗?", function () { //TODO:删除 var id = me.attr("data-value"); $.ajax({ data: { id: id }, url: 'cart.html/DeleteCart', success: function (resText, state, xhr) { if (xhr.valid) { //me.parents("li").remove(); //totalPrice(); $Goto("cart.html"); } } }); }); }); //#region //#region 收藏 page.find(".j_Collect").bind("tap", function (ev) { ev.preventDefault(); if (!isCheck()) { $setAlert("请选择需要移入收藏的商品"); return false; } $confirmDialog("确定将选中的商品移入收藏夹吗?", function () { //TODO:收藏 page.find(".j_CheckSingle").each(function () { var me = $(this); if ($(this).prop("checked")) { var id = me.attr("data-value"); var productid = me.attr("data-productId"); $.ajax({ async: false, data: { id: id, productId: productid }, async: false, url: 'cart.html/ConvertToFavorite', success: function (resText, state, xhr) { if (xhr.valid) { me.parents("li").remove(); $setAlert("收藏成功!"); $Goto("cart.html"); } } }); } }); }); }); //#region //#region 结算 elForm.validate({ submitHandler: function (form, ev) { ev.preventDefault(); if (!isCheck()) { $setAlert("请选择需要购买的商品"); return false; } var skuid_arr = JSON.stringify(skuidarr); var IsCanBuyMsg = getIsCanBuyMsg(skuid_arr); if (IsCanBuyMsg != "") { $setAlert(IsCanBuyMsg); elSubmint.prop("disabled", false); $.mobile.loading("hide"); return false; } //TODO:结算 elSubmint.prop("disabled", false); $.mobile.loading("hide"); $Goto("confirmorder.html?cartidarr=" + cartidarr); }, invalidHandler: function () { return false; } }); //#endregion //#region 判断库存是否足够 function GetStorage(skuId) { var storage = 0; $.ajax({ data: { skuId: skuId }, url: 'product_detail.html/GetStorageBySku', async: false, success: function (resText, state, xhr) { if (xhr.valid) { var obj = $.parseJSON(resText); storage = obj.storage; } } }); return storage; } //#endregion //#region 判断库存是否足够 function GetStorage(skuId) { var storage = 0; $.ajax({ data: { skuId: skuId }, url: 'product_detail.html/GetStorageBySku', async: false, success: function (resText, state, xhr) { if (xhr.valid) { var obj = $.parseJSON(resText); storage = obj.storage; } } }); return storage; } //#endregion //#region 去结算时判断购物车中选中的商品是否已下架或删除 function getIsCanBuyMsg(skuid_arr) { var msg = ""; $.ajax({ url: 'cart.html/IsCanBuy', data: { skuid_arr: skuid_arr }, async: false,//同步处理 success: function (resText) { var rtn = $.parseJSON(resText || "{}"); msg = rtn.Msg; } }); return msg; } //#endregion });
代号1024 2016-04-01
  • 打赏
  • 举报
回复
page.find(".j_Plus").bind("tap", function (ev) { ev.preventDefault(); var me = $(this); var elNum = me.prev(".ui-input-text").find("input[type=text]"); var oldCount = $To.Num(elNum.attr("data-count")); totalPrice_count(elNum); var productId = elNum.attr("data-productId"); var skuId = elNum.attr("data-skuId"); var storage = GetStorage(skuId); var currentNum = parseInt(elNum.val()) + 1; if (parseInt(storage) >= currentNum) { if (productId) { $.ajax({ data: { id: productId, num: 1, skuId: skuId }, url: 'cart.html/AddCart', success: function (resText, state, xhr) { if (xhr.valid) { } } }); } } else { if (storage == 0) { $setAlert("已售罄,无法购买!"); } else { $setAlert("库存不够,仅限购买" + storage + "份!"); elNum.val(storage); } return false; } }); var oldCount; page.find(".j_Positive").bind("blur", function () { var me = $(this); ////手写商品数量的时候,修改购物车中的商品数量 elBuyCarEvent.show(); var newCount = me.val(); if (newCount < 0) { $setAlert("购买数量不能为负数哦"); return false; } var num = newCount - oldCount; totalPrice_count(me); var productId = me.attr("data-productId"); var skuId = me.attr("data-skuId"); var storage = GetStorage(skuId); if (parseInt(storage) >= num) { if (productId) { $.ajax({ data: { id: productId, num: num, skuId: skuId }, url: 'cart.html/AddCart', success: function (resText, state, xhr) { if (xhr.valid) { } } }); } } else { $setAlert("库存不足"); me.val(storage); var num2 = storage - oldCount; $.ajax({ data: { id: productId, num: num2, skuId: skuId }, url: 'cart.html/AddCart', success: function (resText, state, xhr) { if (xhr.valid) { } } }); return false; } }).bind("focus", function () { var me = $(this); oldCount = me.val(); elBuyCarEvent.hide(); }); function totalPrice_count(elNum) { setTimeout(function () { if (elNum.attr("data-price") != undefined) { var elParentItem = elNum.parents(".j_SingleItem"); var oldCount = $To.Num(elNum.attr("data-count")); elParentItem.attr("data-pirce", $To.Money($To.Num(elNum.attr("data-price")) * elNum.val())); //elParentItem.find(".j_SinglePrice").text("¥" + $To.Money($To.Num(elNum.attr("data-price")) * elNum.val())); elNum.attr("data-count", elNum.val()); if (elParentItem.find(".j_CheckSingle").prop("checked")) { var elSum = page.find(".j_PriceSum"); var sumVal = $To.Num(elSum.attr("data-sum")) + $To.Num(elNum.attr("data-price")) * ($To.Num(elNum.val()) - oldCount); elSum.attr("data-sum", sumVal).text($To.Money(sumVal)); } } }, 1) } //#endregion //#region 清除失效商品 page.find(".j_ClearGoods").bind("tap", function (ev) { ev.preventDefault(); var me = $(this); //TODO:清除失效商品 page.find(".j_LoseGoods").each(function () { var me = $(this); var id = me.attr("data-value"); $.ajax({ data: { id: id }, url: 'cart.html/DeleteCart', success: function (resText, state, xhr) { if (xhr.valid) { me.parent().remove(); page.find(".j_LoseGoods").hide(); $Goto("cart.html"); } } }); }); }); //#endregion
代号1024 2016-04-01
  • 打赏
  • 举报
回复
$(document).on("pageinit", "#Cart", function () { var page = $(this); var elForm = page.find('form'); var elBuyCarEvent = page.find("#J_BuyCarEvent"); var elForm = page.find('form'), elSubmint = elForm.find("button[type=submit]"); var elj_GoodsList = page.find(".j_GoodsList"), elSingleItem = page.find(".j_SingleItem"), elLoseGoods = page.find(".j_LoseGoods"), elLoseGoods = page.find(".j_LoseGoods"); //控制按键的显示 if (elLoseGoods.length == 0) { page.find(".j_ClearGoods").remove(); } if (elSingleItem.length != 0) { page.find(".j_buyCarTips").remove(); } else { if (elLoseGoods.length == 0) { page.find(".j_Edit").remove(); } page.find("#J_BuyCarEvent").remove(); } //#region 合计 数量 var elCheckAll = page.find(".j_CheckAll"); elCheckAll.change(function () { var me = $(this); page.find(".j_CheckSingle").prop("checked", me.prop("checked")).checkboxradio("refresh"); if (me.attr("data-type") != "edit") { totalPrice(); } }); page.find(".j_CheckSingle").change(function () { var me = $(this); if (me.prop("checked")) { var isCheckAll = true; page.find(".j_CheckSingle").each(function () { if (!$(this).prop("checked")) { isCheckAll = false; return false; } }); elCheckAll.prop("checked", isCheckAll).checkboxradio("refresh"); } else { elCheckAll.prop("checked", false).checkboxradio("refresh"); } if (elCheckAll.attr("data-type") != "edit") { totalPrice(); } }); function totalPrice() { var priceSum = 0, count = 0; page.find(".j_CheckSingle").each(function () { var me = $(this); if (me.prop("checked")) { count++; priceSum += $To.Num(me.parents(".j_SingleItem").attr("data-pirce")); } }); page.find(".j_PriceSum").attr("data-sum", $To.Money(priceSum)).text("¥" + $To.Money(priceSum)); elSubmint.text("结算(" + count + ")"); } page.find(".j_Minus").bind("tap", function (ev) { ev.preventDefault(); var me = $(this); var elNum = me.next(".ui-input-text").find("input[type=text]"); var oldCount = $To.Num(elNum.attr("data-count")); if (parseInt(elNum.val()) == 1) { return false; } totalPrice_count(elNum); var productId = elNum.attr("data-productId"); var skuId = elNum.attr("data-skuId"); if (productId) { $.ajax({ data: { id: productId, num: -1, skuId: skuId }, url: 'cart.html/AddCart', success: function (resText, state, xhr) { if (xhr.valid) { } } }); } });

87,914

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧