为什么在使用 jQuery 将 html 的字符串放到主页时,我会变得不确定?

Why am I getting undefined when putting a string of html to the main page using jQuery?

我对 JavaScript 和 jQuery 还很陌生,所以如果您有任何其他建议,请在下面的评论中留下。我正在 javascript.

制作一个单屏玩的纸牌游戏

在 id playerHand 的 div 中,我使用 javascript 函数输出当前玩家回合的手牌。每当我输出当前玩家的手时,我都会在 div 中得到一个输出,如下所示:

undefined/ 6H / AD / 7H / 5H / 6S / KC / 8C / 10H / AC / 2H / 8S / 2D / 3S

这手牌由 13 张牌组成(用数字 2-10 和 J、Q、K、A 表示,字母代表红心、黑桃、梅花和方块)。所有 13 张卡片都正确打印到 div,但这种随机未定义的东西是出乎意料的。用于输出此信息的 JavaScript 函数如下。

JavaScript jQuery 函数:

function addHand() {
  var htmlString;
  for(i = 0; i < hands[currentPlayersTurn].handArray.length; i++) {
    htmlString += "/  "+ hands[currentPlayersTurn].handArray[i].name +" ";
  }
  $("#playerHand").html(htmlString);
}

看这里:

var htmlString;

htmlString的初始"value"是undefined.

然后您通过字符串连接将其字符串化,并继续添加到该初始值。既不是 "random" 也不是 "unexpected";这是你编入电脑的内容。

你的意思可能是:

var htmlString = "";

以便以空字符串开头。

您的问题出在 var htmlString 上,因为您没有对其进行初始化。尽管即使您设置为空字符串,您的输出也不会像您预期的那样,因为您随后只需将 undefined/string/string/string 替换为 /string/string/string。更好的方法是将名称列表推入一个数组,然后在 /.

上加入它们
function addHand() {
  var htmlList = [];
  for(var i = 0; i < hands[currentPlayersTurn].handArray.length; i++) {
    htmlList.push(hands[currentPlayersTurn].handArray[i].name);
  }
  $("#playerHand").html(htmlList.join(" / "));
}