我有一个动态生成的表,有两列使用javascript。第一列是从列表框中选择的项目列表,第二列是输入数量的空白文本框。 现在我想要检索要插入数据库的表的第一列的值。请帮助我完成它的工作方式。到目前为止,我做过类似的事情。我尝试使用隐藏文本框或隐藏文本框的标签。但是无法得到结果。 (chem_sel2是我的列表框的名称)
function fun1(){
var my_chem_qty_div = document.getElementById("chem_qty");
var table = document.createElement('TABLE');
table.id='sel_chem_table';
table.border='1';
table.align='center';
table.style.width='100%';
var tableBody = document.createElement('TBODY');
table.appendChild(tableBody);
var chem_sel2_combo =document.getElementById("chem_sel2");
for(var k=0;k<chem_sel2_combo.options.length;k++)
{
var tr = document.createElement('TR');
tableBody.appendChild(tr);
/* var td = document.createElement('TD');
td.width='30';
td.appendChild(document.createTextNode(chem_sel2_combo.options[k].value));
tr.appendChild(td);*/
var td1 = document.createElement('TD');
var lbl= document.createElement('label');
var txt=document.createElement('input');
txt.setAttribute('id','selctd_chem');
txt.setAttribute('value',chem_sel2_combo.options[k].value);
// txt.setAttribute('type','hidden');
lbl.setAttribute('id', 'lbl_txt');
lbl.setAttribute('value', chem_sel2_combo.options[k].value);
td1.width='40';
td1.appendChild(txt);
td1.appendChild(lbl);
//td1.setAttribute('type', 'hidden');
tr.appendChild(td1);
var td2 = document.createElement('TD');
var txt= document.createElement('input');
txt.setAttribute('id',"qty_text");
txt.setAttribute('type','text');
td2.width='30';
td2.appendChild(txt);
tr.appendChild(td2);
}
}
答案 0 :(得分:1)
将tableBody.appendChild(tr);
移动到循环的末尾。在向tr添加任何内容之前,您将tr
附加到表中。
for (...) {
var tr = ...;
tr.append(...);
tableBody.append(tr);
}
而不是:
for (...) {
var tr = ...;
tableBody.append(tr);
tr.append(...);
}