Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.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_Arrays - Fatal编程技术网

Javascript 如何修复使用相同函数将基于名称的多个项添加到数组列表中的问题?

Javascript 如何修复使用相同函数将基于名称的多个项添加到数组列表中的问题?,javascript,html,arrays,Javascript,Html,Arrays,我创建了一个系统,如果单击按钮,它会将按钮文本内容添加到数组列表中。问题是,我确保您不能多次单击同一按钮将其添加到列表中。但是,如果您单击其他按钮,它不会将其添加到列表中,而是控制台输出“列表中已存在的项”。同时添加li列表第一项的文本内容 代码: const cartItems=[]; 函数cartmount(){ var itemsInCart; itemsInCart=document.getElementById('cartamount'); 如果(cartItems.length>=

我创建了一个系统,如果单击按钮,它会将按钮文本内容添加到数组列表中。问题是,我确保您不能多次单击同一按钮将其添加到列表中。但是,如果您单击其他按钮,它不会将其添加到列表中,而是控制台输出“列表中已存在的项”。同时添加li列表第一项的文本内容

代码:

const cartItems=[];
函数cartmount(){
var itemsInCart;
itemsInCart=document.getElementById('cartamount');
如果(cartItems.length>=1){
itemsInCart.style.visibility=“可见”;
}
itemsInCart.innerHTML=cartItems.length;
}
函数addCart(){
var itemVal、aVal、a;
a=document.getElementById('item');
aVal=a.值;
itemVal=a.textContent;
if(cartItems.includes(a.textContent)){
console.log('商品已在购物车中');
}否则{
cartItems.push(itemVal);
//cartAmount();
console.log(“已将项目添加到购物车”);
}
}
这是因为您所有的“a”标签都具有相同的id。id应该是唯一的,因此您希望为您希望用户能够添加到购物车中的每个项目提供不同的id

然后,在js函数中,您需要更新它,以便获取事件对象作为参数,并获取通过它单击的元素

function addCart(e) {
        var itemVal, aVal, a;
    
        aVal = e.target.value;
        itemVal = e.target.textContent;
    
        if(cartItems.includes(itemVal)) {
            console.log('item already in cart');
        } else {
            cartItems.push(itemVal);
            cartAmount();
            console.log('added Item to cart');
        }
    }```

您需要为项目使用不同的ID,以便区分项目:

运行下一个代码片段,其中显示了问题的解决方案。

const cartItems=[];
函数addCart(id){
var itemVal、aVal、a;
a=document.getElementById(id);
aVal=a.值;
itemVal=a.textContent;
console.log(itemVal);
if(cartItems.includes(a.textContent)){
console.log('商品已在购物车中');
}否则{
cartItems.push(itemVal);
console.log(“已将项目添加到购物车”);
}
}

嗯,有人给出了正确的答案。。按惯例,问题只提了25分钟就要结束了。让我们在这里给OP一个机会,尽管我看到他们以前从未有过。