tm_min
我正在动态生成两种不同类型的论坛元素,即负载的位置和负载的大小。获得输入后,我想使用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);
有没有办法基于ID /名称的部分匹配来循环遍历表单元素?如果没有,我可以设置一个更简单的方法吗?
答案 0 :(得分:0)
好吧,我想我可能已经知道了。为每个类别和getElementsByClass添加一个类。我相信它将按照创建元素的顺序返回一个数组。
答案 1 :(得分:0)
您可以使用children属性来获取表单内的任何元素。至于将数据输入正确的数组,则可以使用对象。
我假设表单元素具有一个ID或名称,它们表示接收的数据类型,因此可以使用对象将ID分配为属性,并将空数组作为其值:
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);
}
}
要访问数组,您可以简单地执行以下操作:
var locationData=loadDataArrays["location"];