[英]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.