HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<title>CCG Sim</title>
<link rel="stylesheet" type="text/css" href="main.css">
<script src="C:\Users\Tyler\Desktop\jquery-3.1.1.js"></script>
<script src="C:\Users\Tyler\Desktop\main.js"></script>
</head>
<body>
<form method="post">
Enter Decklist:<br>
<textarea id="txtar_decklist" cols="1" rows="100"></textarea><br><br>
<input type="submit" value="Create Deck" onclick="CreateDeck()">
</form>
<button type="button" onclick="DrawCard()">Draw Card</button>
</body>
</html>
JavaScript代码:
var decklist = [];
function CreateDeck(){
var deckform = document.getElementById("txtar_decklist").value.split('\n');
var stats = [];
for (var n = 0; n < deckform.length; n++){
if (deckform[n] != ""){
stats = deckform[n].split(',');
for (var x = 0; x < parseInt(stats[0],10); x++){
decklist.push({Name: stats[1],
Color: stats[2],
Type: stats[3],
Subtype: stats[4],
Level: stats[5],
Attack: stats[6],
Defense: stats[7],
Drawn: false});
}
}
}
};
function DrawCard(){
var randomcard = 0;
var carddrawn = false;
while (carddrawn == false){
randomcard = (Math.floor(Math.random() * decklist.length + 1)) - 1;
if (decklist[randomcard].Drawn == false){
alert(JSON.stringify(decklist[randomcard]));
decklist[randomcard].Drawn = true;
carddrawn = true;
}
}
};
问题:
每个函数中都未定义变量Decklist。当然第一个函数可以为Decklist创建一个对象数组,但是它的值在以后继续存在以供第二个函数使用(它在第二个函数中只是未定义)。
用户基本上会将一个列表插入到表单中,CreateDeck()函数将(理想情况下)从提供的列表中创建一个对象数组。之后,无论何时用户需要,他或她都会单击调用DrawCard()的Draw Card按钮。第二个函数无法访问Decklist的值,因为它在此内部未定义。
我没有到这里来的?有什么提示吗?