刷新应用程序后如何检索对象的元素?

时间:2015-05-23 07:27:37

标签: javascript jquery

我有一张表格

<input type="text" id='name'>
<input type="text" id='place'>
<button id='add'>Add</button>        
<button id='show'>Show</button>

当触发添加按钮且代码为

时,我有一个n对象来收集元素
var measure = {};
$("#add").click(function(){
    measurecol = new Object();
    measurecol.name = $("#name").val();
    measurecol.place = $("#place").val();
    measure[measurecol.name] = measurecol;
});

当我刷新我的应用程序时,首先它会在“添加”按钮中未执行任何操作时显示对象的元素:

{ 'foo': { 'name':'foo', 'place': 'foo1' } }

但是当我填写表单并触发“添加”按钮时,对象中的旧元素将被删除,并且新对象将添加到对象中。仅在刷新应用程序时才会发生这种情况。

所以,我的问题是如何在刷新应用程序时检索对象的元素,并在添加元素时,它应该添加旧元素:

{
  'foo': {
    'name': 'foo',
    'place': 'foo1'
   },
   'goo': {
     'name': 'goo',
     'place': 'goo1'
   }
}

4 个答案:

答案 0 :(得分:1)

首先,您可以检查对象是否为空。如果它为空,则在对象中添加元素,如果它不为空,则根据对象的长度追加元素。

function *index() {
  let x = 0;
  while(true)
    yield x++;
}

// the 1st value
let a = index();
console.log(a.next().value); // 0

// the 3rd value
let b = index();
b.next();
b.next();
console.log(b.next().value); // 2

// the nth value?
let c = index();
let n = 10;
console.log(...); // 9

希望有所帮助

答案 1 :(得分:0)

每当执行click方法时,您都在创建一个新对象

measurecol = new Object();

删除/替换上一个对象。所以你丢失了以前存储的数据。

如果你不在变量名之前使用var,它会创建一个全局变量。所以你只有一个measurecol变量,它每次都会获得一个新值 添加这个

var measurecol = new Object();

答案 2 :(得分:0)

使用localStorage

var measure = localStorage;
$("#add").click(function(){ 
    measurecol.name = $("#name").val();
    measurecol.place = $("#place").val();
    measure[measurecol.name] = measurecol;
});

我认为它会起作用

答案 3 :(得分:0)

使用localStorage

var measure = {};
$("#add").click(function(){
    measurecol = new Object();
    measurecol.name = $("#name").val();
    measurecol.place = $("#place").val();
    measure[measurecol.name] = measurecol;
    var lastobject =  localStorage.getItem("lastobj");

    if(lastobject){
        lastobject = JSON.parse(lastobject);
        var l = Object.keys(lastobject).length
        lastobject['obj'+l]=measurecol;
    }else{
        lastobject = new Object();
        lastobject.obj0 = measurecol;
    }
    localStorage.setItem("lastobj", JSON.stringify(lastobject));
});