使用 JavaScript 将行和控件追加到表格元素






1.44/5 (4投票s)
使用 JavaScript 动态地将行和控件附加到表格元素。
引言
本文档解释了如何动态地在 HTML 表格元素中添加行和控件。能够使用 JavaScript 在网页中添加或附加行和表单控件非常有用。例如,当我们需要一个按钮来添加包含表单控件的多个新行时。我发现让用户通过单击按钮动态添加 HTML 控件来添加/编辑多个记录非常有帮助。行和控件将在无需刷新页面的情况下添加,并且信息将使用 AJAX 更新到数据库中。使用此代码非常简单。它只是 HTML 和 JavaScript 的组合。在链接或按钮的 onclick 事件中,调用 JavaScript AppendRow() 函数,它将在页面中动态添加控件。
用于添加行和控件的 Javascript
所需的代码已附在本文章中。单击按钮时调用 AppedRow() 函数。在示例中,我使用 JavaScript 在新添加的行中添加了文本框、复选框和下拉控件。
AppendTD() 函数用于在新创建的行中添加单元格。
function AppendTD()
{
    var td = document.createElement("td");
    td.className='';
    td.setAttribute("height", "24px");
    return td;
}
获取网页中已创建的表格元素的引用,并将行附加到引用的表格元素中。
function AppendRow()
{
    var tblObj = document.getElementById('mainTable');
    var tblBody = tblObj.childNodes;
    var ttlRows = tblBody[0].childNodes.length;
    var index = ttlRows;
    var cellHTML = "";
    var tr = document.createElement('tr');
        
    //adding first column
    var td = AppendTD();
    //adding checkbox to first column
    var chk = document.createElement('input');
    chk.setAttribute("id", "chk"+index);
    chk.setAttribute("name", "chk"+index);
    chk.setAttribute("type", "checkbox");
    td.appendChild(chk);
    tr.appendChild(td);
       
    //adding second column
    var td = AppendTD();
    //adding text box
    cellHTML = '<input type="text" class="txtboxcommon" id="txt'+
               index+'1" name="txt'+index+'1" />';
    td.innerHTML = cellHTML;
    tr.appendChild(td);
            
    var td = AppendTD();
    var sel = document.createElement('select');
    sel.setAttribute("id", "dd"+index+"1");
    sel.setAttribute("name", "dd"+index+"1");
    sel.className='';
    var opt0 = document.createElement("option");
    var t0 = document.createTextNode("Yes");
    opt0.setAttribute("value", "1");
    opt0.appendChild(t0);
    sel.appendChild(opt0);
    var opt1 = document.createElement("option");
    var t1 = document.createTextNode("No");
    opt1.setAttribute("value", "2");
    opt1.appendChild(t1);
    sel.appendChild(opt1);
            
    td.appendChild(sel);
    tr.appendChild(td);
       
    tblBody[0].appendChild(tr);
    return false;
}
这是我在 CodeProject 上的第一篇文章。我把它当作一次冒险,因为在撰写任何文章之前,我首先对其进行测试,并且它也增加了我的知识。


