我正在尝试学习javascript,而我正试图找出一个项目的本地存储空间。但首先我相信我需要以编程方式从我的Team构造函数构建密钥。
var Team = function(team, manager, cell, add1, add2, city, st, zip, sponsor) {
this.team = team;
this.manager = manager;
this.cell = cell;
this.add1 = add1;
this.add2 = add2;
this.city = city;
this.st = st;
this.zip = zip;
this.sponsor = sponsor;
};
这是我构建的一个表单,现在我想构建localstorage。这是我失败的尝试:
function saveTeam() {
for (var i = 0; i < Team.length; i++) {
localStorage["league." + i "." + javascriptNameOfProperty ] = $('#'+ javascriptNameOfPropertyName + ').val() };
或类似的东西。我尝试了“属性”,“密钥”和其他我试过的不适用于javascriptNameofProperty。当然,一旦我得到那个数字,那么我必须找出本地存储,当然。
答案 0 :(得分:2)
在这种情况下,您可以使用对象文字而不是构造函数(我没有看到您发布的代码上的构造函数的任何原因,并且您应该使用new
实例化对象,都没有)。考虑使用它(假设您传递给Team
的所有变量都已定义):
var team = {
team : team,
manager : manager,
cell : cell,
add1 : add1,
add2 : add2,
city : city,
st : st,
zip : zip,
sponsor : sponsor
}
可以使用以下代码进行迭代:
for(var key in team) {
localStorage["league." + key] = team[key];
}
我认为这并不完全符合原始代码的要求,但目前尚不清楚您是否拥有多个团队,如何创建团队以及如何使用这些团队。我希望这会有所帮助。
答案 1 :(得分:1)
团队是一个函数,而不是数组。
我会假设你有一系列的团队。
您需要使用for in
循环:
var teams = [ ... ];
for (var i = 0; i < teams.length; i++) {
for (var key in team) {
localStorage["league." + i + "." + key] = $('#' + key).val()
}
}
答案 2 :(得分:1)
为了与其他人建立一点点关系,你也可以这样做。
var Team = function(team, manager, cell, add1, add2, city, st, zip, sponsor) {
this.team = team;
this.manager = manager;
this.cell = cell;
this.add1 = add1;
this.add2 = add2;
this.city = city;
this.st = st;
this.zip = zip;
this.sponsor = sponsor;
};
Team.prototype.save = function () {
for ( var prop in this )
{
if (this.hasOwnProperty(prop))
console.log('%s => %s', prop, this[prop]);
// your localStorage saving logic goes here
}
};
var t = new Team('vteam','vmanager','vcell','vadd1','vadd2','vcity','vst','vzip','vsponors');
t.save();
这将只保存Team对象的属性(在团队内部定义的任何内容。 prop 。