You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

电商网站JavaScript语法错误求助:Uncaught SyntaxError: Unexpected end of input

解决JavaScript购物车代码的语法错误及绑定问题

首先,你遇到的Uncaught SyntaxError: Unexpected end of input错误,本质是代码里的括号没有正确闭合——JavaScript解析器读到文件结尾还没找到需要的闭合符号,所以抛出了这个错误。我们来逐个排查并修复:

问题点定位

你的代码里有两个函数缺少了闭合的}:

  1. removeItemFromCart函数:最后少了一个}来闭合整个函数
  2. removeItemFromCartAll函数:同样最后少了一个}来闭合整个函数

另外,虽然不影响语法,但建议每个语句结束加上分号(比如this.nume = nume;),养成良好的编码习惯,避免潜在的隐式错误。

修正后的完整代码

var cart = [];
var Item = function(nume, pret, nrbuc) {
  this.nume = nume;
  this.pret = pret;
  this.nrbuc = nrbuc;
};

function addItemToCart(nume, pret, nrbuc) {
  for (var i in cart) {
    if (cart[i].nume === nume) {
      cart[i].nrbuc += nrbuc;
      return;
    }
  }
  var item = new Item(nume, pret, nrbuc);
  cart.push(item);
}

function removeItemFromCart(nume) {
  for (var i in cart) {
    if (cart[i].nume === nume) {
      cart[i].nrbuc--;
      if (cart[i].nrbuc === 0) {
        cart.splice(i, 1);
      }
      break;
    }
  } // 补上缺失的函数闭合括号
}

function removeItemFromCartAll(nume) {
  for (var i in cart) {
    if (cart[i].nume === nume) {
      cart.splice(i, 1);
      break;
    }
  } // 补上缺失的函数闭合括号
}

function clearCart() {
  cart = [];
}

绑定到标签的实操示例

语法错误修复后,你可以这样把addItemToCart绑定到<a>标签上:

<!-- 内联事件绑定(适合新手快速上手) -->
<a href="#" onclick="addItemToCart('橙子', 8, 1); return false;">加入购物车</a>
  • return false;是为了阻止<a>标签默认的跳转行为,避免页面刷新丢失购物车数据
  • 你可以根据商品的实际信息修改addItemToCart的参数,比如商品名称、价格、购买数量

如果想更规范(推荐后期学习),可以用事件监听的方式,避免内联代码耦合:

<a href="#" id="addOrangeBtn">加入购物车</a>

<script>
// 修正后的购物车代码放在这里

document.getElementById('addOrangeBtn').addEventListener('click', function(e) {
  e.preventDefault(); // 阻止默认跳转行为
  addItemToCart('橙子', 8, 1);
});
</script>

内容的提问来源于stack exchange,提问作者Anubis Shop

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.13 07:59:13