1

私は 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 では機能しません。もちろん、それを理解したら、もちろん localstorage を理解する必要があります。

4

3 に答える 3

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];
}

これは元のコードがやろうとしていたこととまったく同じではないと思いますが、複数のチームがあるかどうか、それらがどのように作成され、どのように使用されるかは明確ではありません。これが役立つことを願っています。

于 2012-07-31T19:46:39.050 に答える
1

チームは関数であり、配列ではありません。

私はあなたがチームの配列を持っていると仮定します。

for inループを使用する必要があります:

var teams = [ ... ];

for (var i = 0; i < teams.length; i++) {
    for (var key in team) {
        localStorage["league." + i + "." + key] = $('#' + key).val()
    }
}
于 2012-07-31T19:42:30.540 に答える
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 オブジェクトのプロパティのみが保存されます (チーム関数 this. prop内で定義されたものはすべて) 。

于 2012-07-31T19:51:27.623 に答える