我在javascript中动态创建行。由于所有行中的控件都具有相同的id,我需要在创建时为该控件分配一个id。任何人都可以帮助我如何为该控件分配ID 这是我的代码
function AddNewRow(tblrowdetails) {
var table = $("tblrowdetails"); //getting the table id
var rowCount = table.rows.length;
var row = table.insertRow(rowCount);
var colCount = table.rows[0].cells.length;
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
switch(newcell.childNodes[0].type) {
case "text":
newcell.childNodes[0].value = "";
break;
case "checkbox":
newcell.childNodes[0].checked = false;
break;
case "select-one":
newcell.childNodes[0].selectedIndex = 0;
break;
}
}
}
}
我需要为控件分配id以及如何分配pls帮助我
答案 0 :(得分:0)
您可以为每一行添加一个ID,并为每个控件添加一个类,这样您就可以使用此查询访问给定的控件:#myRow .mycontrol。
答案 1 :(得分:0)
假设“控制”是指你添加到表格单元格的输入,我想newcell.childNodes[0].id = '[someid]'
应该这样做?如果要分配随机ID,请使用
newcell.childNodes[0].id = 'c' + (Math.floor(Math.random()*10000)).toString(16)
答案 2 :(得分:0)
其中一种方式可能是
...
for(var i=0; i<colCount; i++) {
var newcell = row.insertCell(i);
newcell.innerHTML = table.rows[0].cells[i].innerHTML;
// assign id in the form of rX_cY - X,Y being row & column numbers
$(newcell.childNodes[0]).attr('id', 'r' + rowCount.ToString() + '_c' + i.ToString());
switch(newcell.childNodes[0].type) {
...
答案 3 :(得分:0)
你可以很简单地在POJS中做到这一点:
var table = document.getElementById('tblrowdetails');
var newRow = table.rows[0].cloneNode(true);
var newCells = newRow.cells; // Use DOM cells collection
/*
fix the ids and values of controls here
using your case statement
*/
table.tBodies[0].appendChild(newRow); // Must append to a tBody to keep IE happy