0

出于学习目的,我正在构建一个简单的消息传递程序,我认为它可以与本地存储一起使用。关于二维数组的另一个问题在评论中。

<!DOCTYPE HTML> 
    <html>     
        <head>             
            <title>waGwan?</title>     
            <meta charset="utf-8"/>
            <link rel=stylesheet href=comm.css></link>       
        </head>     
            <body>                              
                <section>
                    <p>enter or create passcode: <input type=text id=passcode></p>
                    <input type=button id="button" value="send">
                </section>
                <section id="log"></section>
                <script type="text/javascript">
                    //initializing my passcode. Pass is a two dimensional array that holds passcodes and arrays of corresponding message logs; how can I instantiate my passcode without nil but maintain pass as a two dimensional array, just not include pass?
                    var pass=[mypasscode,nil];
                    document.getElementById("button").onclick=checkPass;
                    function checkPass(){
                        for(i=0;i<pass.length;i++){
                            //exits if passcode exists
                            if(document.getElementById("passcode").value==pass[i]){
                                break;
                            }
                            //if passcode doesn't equal last existing passcode the passcode and a new array (that stores the message log) is added to the pass array
                            else if(document.getElementById("passcode").value!==pass[pass.length-1]){
                                pass.push(document.getElementById("passcode").value,[We can chat here.]);
                            }
                        }
                        document.write("x");
                    }
                </script>
            </body> 
    </html>
4

2 回答 2

0

你有几个错误。如

pass.push(document.getElementById("passcode").value,[We can chat here.]);

[We can chat here.]无效。

并且未声明在初始化时放入数组中的这些变量。

 var pass=[mypasscode,nil];

如果您使用 Chrome 或 IE,我建议您按 f12 并查看脚本部分,以便更好地调试您的问题。

试试下面的方法,虽然可能不是你想要做的。

现场演示

   //initializing my passcode. Pass is a two dimensional array that holds passcodes and arrays of corresponding message logs; how can I instantiate my passcode without nil but maintain pass as a two dimensional array, just not include pass?
                    var pass=["mypasscode","nil"];
                    document.getElementById("button").onclick=checkPass;
                    function checkPass(){
                        for(i=0;i<pass.length;i++){
                            //exits if passcode exists
                            if(document.getElementById("passcode").value==pass[i]){
                                break;
                            }
                            //if passcode doesn't equal last existing passcode the passcode and a new array (that stores the message log) is added to the pass array
                            else if(document.getElementById("passcode").value!==pass[pass.length-1]){
                                pass.push(document.getElementById("passcode").value);
                            }
                        }
                        document.write("x");
                    }​
于 2012-09-10T18:11:12.753 回答
0
  pass.push(document.getElementById("passcode").value,[We can chat here.]);

                                                       ^^^^^^^^^^^^^^^^^^^
                                                        here is the problem   

尝试这个

pass.push(document.getElementById("passcode").value,["We can chat here."]);

你可以使用像neatbean这样的ide,它会警告你有任何错误,如下所示

在此处输入图像描述

于 2012-09-10T18:11:38.723 回答