Javascript变量未定义 - 本地问题?

时间:2016-12-05 01:54:27

标签: javascript html

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的值,因为它在此内部未定义。

我没有到这里来的?有什么提示吗?

0 个答案:

没有答案