Javascript 如何比较购物车中的名称和名称
我尽量不使购物车有重复的项目,而是我希望数量增加 如何比较购物车中的名称和将要从产品输入购物车的名称Javascript 如何比较购物车中的名称和名称,javascript,html,Javascript,Html,我尽量不使购物车有重复的项目,而是我希望数量增加 如何比较购物车中的名称和将要从产品输入购物车的名称 var total=document.getElementById('total'); var cart=document.getElementById(“cart”); var totalPrice=0; 功能添加(e){ var price=parseFloat(例如,previousSibling.previousSibling.previousSibling.previousSibli
var total=document.getElementById('total');
var cart=document.getElementById(“cart”);
var totalPrice=0;
功能添加(e){
var price=parseFloat(例如,previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value);
变量数量=parseFloat(例如,previousSibling.previousSibling.value);
变量名称=e.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value;
总价+=价格*数量;
console.log(“名称为”+name);
cart.innerHTML+=“”+名称+“”+数量+“”+价格+
“”+(价格*数量)+
“删除”;
total.innerHTML=“总价:”+总价;
}
总计
黑莓
价格:50000
量
添加到购物车
iPhone5
价格:100000
量
添加到购物车
iphone6
价格:15万
量
添加到购物车
var total=document.getElementById('total');
var cart=document.getElementById(“cart”);
var totalPrice=0;
var productsCart={};
功能添加(e){
var price=parseFloat(例如,previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value);
变量数量=parseFloat(例如,previousSibling.previousSibling.value);
变量名称=e.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value;
总价+=价格*数量;
console.log(“名称为”+name);
if(productsCart[name]==null){
productsCart[name]={“name”:name,“quantity”:quantity,“price”:price};
}否则{
productsCart[name]={“name”:name,“quantity”:quantity+parseInt(productsCart[name].quantity),“price”:price};
}
瓦尔客栈=”;
for(productsCart中的变量名称){
inn+=“”+productsCart[名称]。名称+“--”+productsCart[名称]。数量+“--”+productsCart[名称]。价格+“--”+(productsCart[名称]。价格*productsCart[名称]。数量)+“--”删除----”;
}
cart.innerHTML=inn;
total.innerHTML=“总价:”+总价;
}
Html
总计
黑莓
价格:50000英镑
量
添加到购物车
iPhone5
价格:100000英镑
量
添加到购物车
iphone6
价格:15万
量
添加到购物车
这里有一个简短的片段:
(小注释:避免使用样板代码)
var cart=document.getElementById(“cart”);
var totalPrice=0
//这些函数是在JQuery中实现的——您可以选择以自己希望的方式实现
函数_getValueOfClosestInput(事件、包装器父级、元素类型、类名){
返回$(event).closest(wrapperpparent).find(elementType+“+className).val();
}
函数_setTextfElement(元素类,值){
$(elementClass).text(值);
}
功能添加(e){
var价格=_getValueOfClosestInput(e,'div','input','price');
var数量=_getValueOfClosestInput(e,'div','input','quantity');
var name=_getValueOfClosestInput(e,'div','input','name');
总价+=价格*数量;
console.log(“名称为”+name);
cart.innerHTML+=“”+名称+“”+数量+“”+价格+“”+(价格*数量)+“删除”
_Settextfelment(“.总价”,总价);
}
购买物品清单:
总价:
黑莓
价格:50000英镑
量
添加到购物车
iPhone5
价格:100000英镑
量
添加到购物车
iphone6
价格:15万
量
添加到购物车
可能重复的正如您所知,从数据结构的角度来看,使用项目ID而不是名称将更加简洁和准确,因为名称可能会更改,或重复,并且要完成@zack6849所说的,使用HTML作为数据结构不是一个好策略,HTML用于表示,您的数据应该是一个项目数组
var total = document.getElementById('total');
var cart = document.getElementById("cart");
var totalPrice = 0;
var productsCart={};
function add(e) {
var price = parseFloat(e.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value);
var quantity = parseFloat(e.previousSibling.previousSibling.value);
var name = e.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.previousSibling.value;
totalPrice += price * quantity;
console.log("the name is " + name);
if(productsCart[name]==null){
productsCart[name]={"name":name,"quantity":quantity,"price":price};
}else{
productsCart[name]={"name":name,"quantity":quantity+parseInt(productsCart[name].quantity),"price":price};
}
var inn="";
for(var names in productsCart){
inn+="<tr><td>"+productsCart[names].name+"--</td><td>"+productsCart[names].quantity+"--</td><td>"+productsCart[names].price+ "--</td><td class='getT'>" + (productsCart[names].price * productsCart[names].quantity) + "--</td><td class='btn btn-danger del' id='del' onclick='del(this)'>Delete</td>-----</tr>";
}
cart.innerHTML =inn;
total.innerHTML = "Total Price: " + totalPrice;
}
<div id="total">TOTAL</div>
<div id="cart"></div>
<h3>Blackberry</h3>
<input type="text" value="Blackberry" class="name" id="name" style="display: none;">
Price: 50,000<input type="number" id="price" value="50000"><br>
Quantity <input type="number" id="quantity" min="1" max="50" value="1"s>
<button class="AddtoCart" onclick="add(this)">ADD TO CART</button>
<h3>Iphone 5</h3>
<input type="text" value="iphone 5" class="name" id="name" style="display: none;">
Price: 100,000<input type="number" id="price" value="100000"><br>
Quantity <input type="number" id="quantity" min="1" max="50" value="1">
<button class="AddtoCart" onclick="add(this)">ADD TO CART</button>
<h3>Iphone 6</h3>
<input type="text" value="iphone 6" class="name" id="name" style="display: none;"> Price: 150,000
<input type="number" id="price" value="150000"><br>
Quantity <input type="number" id="quantity" min="1" max="50" value="1">
<button class="AddtoCart" onclick="add(this)">ADD TO CART</button>