我有一张表格
<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'
}
}
答案 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)
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));
});