加载页面后,您引用的代码会立即运行。表单字段中将没有任何内容,因此其值为''
. 当您发出警报时,toString
将导致阵列上的默认操作,''
并且警报将为空白。
您希望运行unshift
代码以响应用户事件,例如单击按钮,而不是立即运行。您可以通过将其设置input
为元素(.value
从该行中删除)然后将您的行移动unshift
到您分配给的函数中onclick
,并在其中添加.value
:
button.onclick = function alerted (){
myArray.unshift(input.value);
alert(myArray);
};
其他注意事项:
你从不写</input>
。通常你根本不会关闭input
标签。如果你正在编写 XHTML(你可能不是),你可以/
像input
这样把<input id="input" />
. 但同样,您可能不是在编写 XHTML,而只是在编写 HTML。
input
按钮的值(标题)位于其value
属性中,而不是开始和结束标记中的内容。(您可以在元素中使用开始和结束标签button
,而不是input
.)
综合所有这些,这是一个极简更新:Live copy | 来源
<form>
<input id="input"><!-- No ending tag -->
<input type = "button" id="button" value="Click me"><!-- No ending tag, move value where it should be -->
</form>
<script>
var input = document.getElementById("input"); // No .value here
var button = document.getElementById("button");
var myArray = [];
button.onclick = function alerted (){
myArray.unshift(input.value); // Moved this line, added the .value
alert(myArray);
};
</script>