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

JS函数返回undefined排查:点击卡片累加功能失效原因

点击卡片后setcard函数显示undefined的修复方案

问题原因

你的代码里setcard函数定义时要求接收card2和card3两个参数,但在clickplus2和clickplus3中调用时只传了一个参数——点击卡片对应的变量,未传递的参数会被视为undefined。当undefined与数字相加时,结果会变成NaN,最终导致页面显示异常(表现为undefined或空白)。

修复方法(两种可选)

方法1:修改函数调用,传递完整参数

既然setcard需要两个参数,每次调用时都把当前的card2和card3值一起传进去,不管点击的是哪张卡片:

var card2 = 0;
var card3 = 0;

function setcard(card2, card3) {
  document.getElementById("truecount").innerHTML = card2 + card3;
}

function clickplus2() {
  resultado += 2;
  zen += 2;
  cartas += 1;
  valor += 2;
  zenok += 11;

  card2 += 1;
  setresultado(resultado, zen, cartas, valor, zenok);
  setcard(card2, card3); // 传递两个参数
}
function clickplus3() {
  resultado += 3;
  zen += 2;
  cartas += 1;
  valor += 3;
  zenok += 10;

  card3 += 1;
  setresultado(resultado, zen, cartas, valor, zenok);
  setcard(card2, card3); // 传递两个参数
}

方法2:修改setcard函数,直接使用全局变量

card2和card3是全局变量,setcard可以直接读取它们的值,无需通过参数传递,调用时不用传参更简洁:

var card2 = 0;
var card3 = 0;

// 去掉函数参数,直接读取全局变量计算
function setcard() {
  document.getElementById("truecount").innerHTML = card2 + card3;
}

function clickplus2() {
  resultado += 2;
  zen += 2;
  cartas += 1;
  valor += 2;
  zenok += 11;

  card2 += 1;
  setresultado(resultado, zen, cartas, valor, zenok);
  setcard(); // 无需传参
}
function clickplus3() {
  resultado += 3;
  zen += 2;
  cartas += 1;
  valor += 3;
  zenok += 10;

  card3 += 1;
  setresultado(resultado, zen, cartas, valor, zenok);
  setcard(); // 无需传参
}

内容的提问来源于stack exchange,提问作者Otávio Barreto

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 17:42:38