Javascript 将论坛数据放入单独的数组中

Javascript 将论坛数据放入单独的数组中,javascript,Javascript,我正在动态生成两种不同类型的论坛元素,负载的位置和负载的大小。在获得输入后,我想使用JavaScript将每组数据放入各自的数组中,最终得到如下结果: container.appendChild(document.createTextNode("Load Location " + (i) + " (m): ")); var input = document.createElement("input"); input.type = "text"; input.name = "loadLocatio

我正在动态生成两种不同类型的论坛元素,负载的位置和负载的大小。在获得输入后,我想使用JavaScript将每组数据放入各自的数组中,最终得到如下结果:

container.appendChild(document.createTextNode("Load Location " + (i) + " (m): "));
var input = document.createElement("input");
input.type = "text";
input.name = "loadLocation" + i;
input.id = "loadLocation" + i;
container.appendChild(input);

container.appendChild(document.createTextNode(" Load Magnitude " + (i) + " (N): "));
var input = document.createElement("input");
input.type = "text";    
input.name = "loadMagnitude" + i;
input.id = "loadMagnitude" + i;
container.appendChild(input);
var loadDataArrays={
  "location":[],
  "magnitude":[]
};

function assignData(formID){
  var form=document.getElementById(formID);
  var formChildren=form.children;
  //Loop through child elements of form element (inputs)
  for(var i in formChildren){
    var child=formChildren[i];
    //Using the form id, you can push the data of its child elements to the correct array
    loadDataArrays[formID].push(child.id);
  }
}

是否有任何方法可以基于id/name的部分匹配来循环整个表单元素?如果没有的话,有没有更简单的方法来设置它?

好的,我想我可能已经找到了。为每个类别和getElementsByClass添加一个类。我相信这将按照创建元素的顺序返回数组。

您可以使用children属性获取表单中的任何元素。至于将数据输入正确的数组,可以使用对象

我假设表单元素有一个id或名称,表示它接收的数据类型,因此使用对象可以将id指定为属性,将空数组指定为值:

loadLocation [] = [loadLocation1, loadLocation2, ...]
loadMagnitude[] = [loadMagnitude1, loadMagnitude2, ...]
要访问阵列,只需执行以下操作:

container.appendChild(document.createTextNode("Load Location " + (i) + " (m): "));
var input = document.createElement("input");
input.type = "text";
input.name = "loadLocation" + i;
input.id = "loadLocation" + i;
container.appendChild(input);

container.appendChild(document.createTextNode(" Load Magnitude " + (i) + " (N): "));
var input = document.createElement("input");
input.type = "text";    
input.name = "loadMagnitude" + i;
input.id = "loadMagnitude" + i;
container.appendChild(input);
var loadDataArrays={
  "location":[],
  "magnitude":[]
};

function assignData(formID){
  var form=document.getElementById(formID);
  var formChildren=form.children;
  //Loop through child elements of form element (inputs)
  for(var i in formChildren){
    var child=formChildren[i];
    //Using the form id, you can push the data of its child elements to the correct array
    loadDataArrays[formID].push(child.id);
  }
}