如何为动态创建的行分配ID

时间:2012-03-19 10:10:55

标签: c# javascript

我在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帮助我

4 个答案:

答案 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