我知道这很简单,但是我不太明白。
function submitNewComment() {
var noo = 0; //array index
var userName = document.getElementById('user-name').value; //textbox
var commentBox = document.getElementById('main-comment').value; //textbox
var now = new Date();
mili = now.getTime(); //time in milisecond
var element = [];
element.push({
"no": noo, //array index
"username": userName,
"date": mili,
"body": commentBox,
"likes": "0",
"parent": null
});
console.log(element);
noo++;
console.log(noo);
}
简而言之,我需要添加一个创建变量作为包含对象的数组。 当我运行该函数时,它并没有按照我希望的那样工作。我缺少什么。
第二次运行该函数时,存在问题。 理想情况下,应该创建第二个对象,但第一个对象要更新。因此,在第二次运行结束时以及此后的所有其他运行之后,数组的长度保持为1。
答案 0 :(得分:2)
您遇到了一些问题。您需要一种在页面加载后获取数据的方法。
var element = [];
var btn = document.getElementById('btn');
btn.addEventListener('click', submitNewComment);
function submitNewComment() {
var userName = document.getElementById('user-name').value
var commentBox = document.getElementById('main-comment').value
var now = new Date();
var milliseconds = now.getTime();
element.unshift({
no: "test",
username: userName,
date: milliseconds,
body: commentBox,
likes: 0,
parent: null,
});
console.log(element);
}
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>misterhtmlcss</title>
</head>
<body>
<input type="text" name="user-name" id="user-name">
<input type="text" name="main-comment" id="main-comment">
<button id="btn">Submit</button>
<script src="index.js"></script>
</body>
</html>
更新。我意识到我将此声明留在函数中,这意味着它不会保留您根据您的发言想要的连续提交。
答案 1 :(得分:0)
使用.unshift( object )
前置到数组。
let a = [1,2,3,4];
console.log( a );
a.unshift(5);
console.log( a );
答案 2 :(得分:0)
您可以使用Array.prototype.unshift()
将元素添加到Array的开头。此方法返回数组的新长度。
var element = [];
element.push({
"no": "noo", //temp variable
"username": "userName",
"date": "mili",
"body": "commentBox",
"likes": "0",
"parent": null
});
element.push({"something": "else"});
var newLen = element.unshift({"object": "one"});
console.log(element);
console.log("New length of Element Array: "+newLen);