繁体   English   中英

为什么我只能得到一个数组作为输出的最后一个元素?

[英]Why am i only getting the last element of an array as output?

我尝试制作一个带有按钮的登录系统,该按钮使用javascript显示哪些用户在线。 我输入名称,然后单击登录。 后,我可以选择显示在线用户或键入另一个名称的列表。 我想要的是,当我单击“显示列表”时,将显示一个在线用户列表(我登录的所有名称)。 问题是,我只获得姓氏我登录与列表中。 其他所有名称均未显示。

如果您运行下面的代码段并尝试登录多个名称,则只会获得登录时使用的姓氏:

 <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <title>javascript</title> <link href="" rel="stylesheet"> <script type="text/javascript"> var playerlist; function login(){ var player = document.getElementById('loginField').value; var players = new Array(); players.push(player); playerlist = players.join("<br>"); } </script> </head> <body> <input type="text" id="loginField" placeholder="Username:"> <input type="button" value="Login" onclick="login()"> <input type="button" value="Show List" onclick="showlist()"><br> <script type="text/javascript"> function showlist(){ document.write(playerlist); } </script> </body> </html> 

我在这里做错了什么?

先感谢您。

因为每次调用login方法时都在创建一个新数组。 因此,您会丢失先前的数组,而之前的数组是您在其中推送了一些字符串的。

将数组声明移到您的方法之外,以使其停留在多次登录方法之间。

var players = []; 
function login()
{
   var player = document.getElementById('loginField').value;
   players.push(player);
   playerlist = players.join("<br>");
}

我还将new Array()更改为[] 两者相同,但是crockford( json的创建者建议使用[] 感谢@Rayon Dabre提出的建议。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM