0

既存の reocds を削除するたびに動的に行を追加することはできません。単一の新しい行が作成されるだけです。ここでは、新しい 3 つの行を作成しようとしました。助けてください。

<TABLE id="dataTable" width="350px" border="1">      
</TABLE>

function addRow(tableID) 
        {     
            var table = document.getElementById(tableID);                
            deleteRow(tableID);
            for(i=0;i<3;i++)
            {
              var rowCount = table.rows.length;
              var row = table.insertRow(rowCount);
              var cell0 = row.insertCell(i);
              var element0 = document.createElement("input");
              element0.type = "text";
              element0.name = "txtbox[]";
              cell0.appendChild(element0);

              var cell1 = row.insertCell(i+1);
              var element1 = document.createElement("input");
              element1.type = "text";
              element1.name = "txtbox[]";
              element1.value = tableID+"_"+rowCount+"_newschedule";
              cell1.appendChild(element1);
           }    
        }

        function deleteRow(tableID) {
            try 
             {
                var table = document.getElementById(tableID);
                var rowCount = table.rows.length;                
                for(i =(rowCount-1);i>=0;i--)
                 {
                   table.deleteRow(i);
                 }

              }
           catch(e)
             {                    
             }
        }
4

1 に答える 1

1

これを試して

function addRow(tableID) {
            var table = document.getElementById(tableID);
            deleteRow(tableID);
            for (i = 0; i < 3; i++) {
                var rowCount = table.rows.length;
                var row = table.insertRow(rowCount);

                var cell0 = row.insertCell(0);
                var element0 = document.createElement("input");
                element0.type = "text";
                element0.name = "txtbox[]";
                cell0.appendChild(element0);

                var cell1 = row.insertCell(1);
                var element1 = document.createElement("input");
                element1.type = "text";
                element1.name = "txtbox[]";
                element1.value = tableID + "_" + rowCount + "_newschedule";

                cell1.appendChild(element1);
            }
        }

これらの2行は間違っていました

var cell0 = row.insertCell(i);
var cell1 = row.insertCell(i+1);

insertCell(i)は行(TR)に追加されるセル(TD)のインデックスを取得しますが、最初の反復後にi1になり、次にインデックス1にセルを挿入してから、0にセルを挿入しようとします。 getはインデックスエラーです。

于 2013-02-21T12:53:22.183 に答える