Javascript 如何在刷新应用程序后检索对象的元素?
我有一张表格Javascript 如何在刷新应用程序后检索对象的元素?,javascript,jquery,Javascript,Jquery,我有一张表格 <input type="text" id='name'> <input type="text" id='place'> <button id='add'>Add</button> <button id='show'>Show</button> 刷新应用程序时,首先在“添加”按钮中未执行任何操作时显示对象的元素: { 'foo': { 'name':'foo', 'place': 'foo1'
<input type="text" id='name'>
<input type="text" id='place'>
<button id='add'>Add</button>
<button id='show'>Show</button>
刷新应用程序时,首先在“添加”按钮中未执行任何操作时显示对象的元素:
{ 'foo': { 'name':'foo', 'place': 'foo1' } }
但是当我填写表单并触发Add按钮时,对象中的旧元素被删除,新元素被添加到对象中。这仅在刷新应用程序时发生
因此,我的问题是如何在刷新应用程序时检索对象的元素,并且在添加元素时,它应该与旧元素一起添加:
{
'foo': {
'name': 'foo',
'place': 'foo1'
},
'goo': {
'name': 'goo',
'place': 'goo1'
}
}
每当执行click方法时,您都在创建一个新对象
measurecol = new Object();
它删除/替换上一个对象。因此,您丢失了以前存储的数据
如果在变量名之前不使用var,它将创建一个全局变量。因此,您只有一个measurecol变量,它每次都会获得一个新值。加上这个
var measurecol = new Object();
使用
我想它会起作用的。首先,你可以检查对象是否为空。如果为空,则在对象中添加元素;如果为非空,则根据对象的长度追加元素
if(measure != undefined && measure !={}){
measure[measure.length] = measurecol;
}else{
measure[measure.length+1] = measurecol;
}
希望它能帮助您使用
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));
});
第…号的可能副本与我的不同。当重新加载应用程序时,我可以在object中获取旧元素,但当我触发add按钮时,新元素是通过删除旧元素来添加的。您知道measure!={}
将始终返回true
,因为将它与新的空对象literal进行比较第一次它将为空,并且当添加元素时,度量值将不会为空,因此条件将得到满足
if(measure != undefined && measure !={}){
measure[measure.length] = measurecol;
}else{
measure[measure.length+1] = measurecol;
}
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));
});