Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何比较购物车中的名称和名称_Javascript_Html - Fatal编程技术网

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>