函数保存JS对象不工作
function to save JS object not working
我做了一个名为Customer的HTML项目,其中有一些文本框,我可以在其中输入一些文本,还有一个叫做save的按钮。现在我想用JavaScript创建一个函数来保存一个新的联系人对象。
我试过这个:
function SaveContact() {
var list = [];
var firstName = document.getElementById("first_name");
var lastName = document.getElementById("last_name");
var phoneN = document.getElementById("phone");
var emailN = document.getElementById("email");
var birthDay = document.getElementById("birth_day");
var birthMonth = document.getElementById("birth_month");
var birthYear = document.getElementById("birth_year");
list.push({ firstName, lastName, phoneN, emailN, birthDay, birthMonth, birthYear });
return list;
但这并没有改变任何事情。我哪里错了?
以下行的问题:
list.push({ firstName, lastName, phoneN, emailN, birthDay, birthMonth, birthYear });
你只是在保存价值观。在JS中,您需要值和键。因此,您需要将其更改为:
list.push({ "firstName": firstName, "lastName": lastName, "phoneN": phoneN, "emailN": emailN, "birthDay": birthDay, "birthMonth":birthMonth, "birthYear":birthYear });
编辑
你说你想创建一个对象,但你想把它们存储为一个数组。要将它们存储为数组(一个以键为索引的对象),只需删除push()
行中的{
和}
即可。
然而,我认为只创建一个对象会更容易,比如:
function SaveContact() {
return {
"firstName": document.getElementById("first_name"),
"lastName": document.getElementById("last_name"),
"phoneN": document.getElementById("phone"),
"emailN": document.getElementById("email"),
"birthDay": document.getElementById("birth_day"),
"birthMonth": document.getElementById("birth_month"),
"birthYear": document.getElementById("birth_year")
};
}
这个单语句函数只是创建并返回一个对象文字,而不是将值分配给变量,然后将它们放入数组/对象中。
但是,如果您确实想要一个数组,只需将{
和}
替换为[
和]
,然后移除键即可。这将为您提供当前正试图通过程序实现的输出。
Push不需要元素周围的{ ... }
:
array.push(item1, item2, ..., itemX)
(从这里)
另外,请注意,您将DOM元素存储在list
中。你可能需要他们的价值观,而不是元素,但这取决于你试图做什么…
编辑-在看到乔纳森的答案之后
或者你可以做:
obj = {}
obj.name = document.getElementById("first_name")
// ... more fields
list.push(obj)
相关文章:
- 读取在具有IE的工作程序中生成的对象URL
- 我怎样才能让jQuery即使在尚未创建的对象上也能工作
- JSON.stringify没有'在更改的对象上无法按预期工作.如何处理
- 如何让我的正则表达式代码在我的dojo cellWidget对象上工作
- dropable的Over事件是't工作正常,在可拖动对象被拖放到贪婪的可拖动对象上并再次拖动后
- 地图如何在 Ecmascript 6 中使用对象键工作
- 了解 JavaScript 对象实例或工作流
- JavaScript 返回对象未按预期工作
- 如何让、要求和原型协同工作以在 javascript 中制作对象
- 谷歌应用程序脚本-正在尝试使用getUrl.TypeError:在对象工作表中找不到函数getUrl
- 一个对象怎么能像返回自身和另一个对象一样工作
- "键“;jQuery中的对象无法正常工作
- 对象引用的隐式传递是如何工作的
- dojo类对象的工作原理
- app.use(restify.bodyParser())无法工作,因为req对象为空
- 从服务器端将属性绑定到套接字对象;似乎不能正常工作
- 为什么mongoose.connect()在mongoose对象上没有作为方法出现时工作得很好
- 在 JavaScript 不工作对象中连接两个变量
- JS循环插件在IE11中不工作.对象不支持属性或方法循环
- Javascript 对象:如何创建包含工作对象的封装