为什么在使用 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(" / "));
}
我对 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(" / "));
}