使用 javascript 推入 javascript "members" 对象

use javascript to push into javascript "members" object

我正在尝试将数据推送到 "members" 对象中。这种添加不一定是永久性的!但是我的代码字符串不起作用,尽管(在我看来)它应该可以正常工作。谁能告诉我为什么下面的推送不起作用?

<script>
var members = [ 
{ "Class": "B", "Rating": "1776", "ID": "12537964", "Name": "Smith, John", "Expires": "2018.10.18" }, 
{ "Class": "C", "Rating": "1500", "ID": "12210580", "Name": "Jones, Jim", "Expires": "2019.01.12" }, 
{ "Class": "B", "Rating": "1759", "ID": "10117780", "Name": "Williams, Paula", "Expires": "2018.09.12" }
]
</script>

HTML:

<form action="" id = "newMember" class="pure-form" method = ""> 
<fieldset> 

<label for="mem-name">Last, First name:</label> <input type="text" id = "mem-name" /> 
<label for="mem-expires">Membership:</label> <input type="text" id = "mem-expires" /> <br /> 
<label for="mem-rating">Rating:</label> <input type="text" id = "mem-rating" /> 
<label for="mem-ID">ID:</label> <input type="text" id = "mem-ID" /> 
<label for="mem-class">Class:</label> <input type="text" id = "mem-class" /> 

<button type="button" id="addPlayer" style="margin-left:2rem;"  onclick="validateForm()">add new player</button> 
<button type="reset">reset form</button> 

</fieldset> 

</form>

JAVASCRIPT:

<script> 

function validateForm() { 

var memName = document.getElementById('mem-name').value; 
var memExpires = document.getElementById('mem-expires').value; 
var memRating = document.getElementById('mem-rating').value; 
var memID = document.getElementById('mem-ID').value; 
var memClass = document.getElementById('mem-class').value; 

if (memName == "") { 
alert("Name must be filled out"); 
return false; 
}

//The line below doesn't work:

members.push({Name: "memName", Expires: "memExpires", Rating: "memRating", ID: "memID", Class: "memClass"});

} 

</script>

您正在推动字符串,但您必须改用变量。而不是这个:

members.push({Name: "memName", Expires: "memExpires", Rating: "memRating", ID: "memID", Class: "memClass"});

这样做:

members.push({Name: memName, Expires: memExpires, Rating: memRating, ID: memID, Class: memClass});

例如 "memName" 是一个包含 memName 的字符串,而如果您想要文本输入的值,则将其存储在名为 memName 的变量中,您需要从双引号中解开值。