我有一个程序,涉及在网页上获取一些用户估算的值。然后,这些值通过串行端口发送到某些控制电子设备。
有六个不同的区域"这些都有6个值与每个值相关联,这些值都由用户在页面上设置,并通过javascript读取和存储。
我一直在使用6个数组来存储数据,但我现在想使用对象,因为我认为当我在页面的其他地方引用和操作数据时,这会使代码更具可读性。
这给了我6个对象,每个对象有6个属性,所以我有例如zone1.duration - zone1.repeat .... zone6.op
这是一种存储价值的好方法吗?此外,我确实需要从网页上收集数据,并将其解释为与网页相关的其他功能。在我通过不同区域循环的简单循环之前,我不确定如何使用对象。
下面的代码说明了我想要从网页上加载值的方法,document.getElementById部分确实可以像以前那样使用,但我不知道循环使用的正确语法不同的区域并分配属性。我只在第一线显示了我的不良尝试。
for (i = 1; i < 7; i++){
('zone'+ i )["op"] = document.getElementById('Z' + i + 'Operate').value;
zone1["onHour"] = document.getElementById('Z' + i + 'OnTimeH').value;
zone1["onMinute"] = document.getElementById('Z' + i + 'OnTimeM').value;
zone1["duration"] = document.getElementById('Z' + i + 'Duration').value;
zone1["repeat"] = document.getElementById('Z' + i + 'Repeat').value;
zone1["ex"] = document.getElementById('Z' + i + 'Extra').value;
}
希望这可以提供我想要实现的目标。我的问题是:这首先是一个很好的方法,如果是这样,我需要改变什么才能使上面的代码工作。如果不是更好的方式呢?
谢谢你的期待。
答案 0 :(得分:0)
我认为你正在寻找一系列物品。例如:
var zones = [,{},{},{},{},{},{}]; // leading comma indicates element 0 not used.
for (i = 1; i < 7; i++){
zones[i].op = document.getElementById('Z' + i + 'Operate').value;
zones[i].onHour = document.getElementById('Z' + i + 'OnTimeH').value;
// etc
}