我正在处理一个由HTML5本地存储保存的表单。
按save时:

function saveAll(){
  var field1 = document.getElementById('field1').value;
  localStorage.setItem('con_field1',field1);
  var field2 = document.getElementById('field2').value;
  localStorage.setItem('con_field2',field2);
  var field3 = document.getElementById('field3').value;
  localStorage.setItem('con_field3',field3);
  var field4 = document.getElementById('field4').value;
  localStorage.setItem('con_field4',field4);
  var field5 = document.getElementById('field5').value;
  localStorage.setItem('con_field5',field5);
  var field6 = document.getElementById('field6').value;
  localStorage.setItem('con_field6',field6);
}

加载页面时(填写表单):
function ShowAll() {
  var field1 = localStorage.getItem('con_field1');
  document.conditioning.field1.value = field1;
  var field2 = localStorage.getItem('con_field2');
  document.conditioning.field2.value = field2;
  var field3 = localStorage.getItem('con_field3');
  document.conditioning.field3.value = field3;
  var field4 = localStorage.getItem('con_field4');
  document.conditioning.field4.value = field4;
  var field5 = localStorage.getItem('con_field5');
  document.conditioning.field5.value = field5;
  var field6 = localStorage.getItem('con_field6');
  document.conditioning.field6.value = field6;
}

这一切都很好,但我想用一种更花哨和更有效率的方式重新写这篇文章。我在想这样的事情:
function ShowAll() {
  var field = [];
  for (i=0; i<6; i++) {
    field[i] = localStorage.getItem(window['con_field' + i]);
    document.purpose.field[i].value = window['con_field' + i]
  }
}

但浏览器并不喜欢这样。基本上,我需要创建一个循环,自动将“field”的名称更改为“field1,field2,field3”等。窗口的工作正常,但我只是用错了。
有人有主意吗?
谢谢!

最佳答案

function showAll(t1,c1,d1)  {
    var field1 = localStorage.getItem('con_field1');
    console.log(field1)
    var field2 = localStorage.getItem('con_field2');
    var field3 = localStorage.getItem('con_field3');
}

关于javascript - Javascript:创建动态变量和对象名称。/html5 localstorage,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11399923/

10-12 13:10