繁体   English   中英

如何动态添加表中的行

[英]how to add row in the table dynamically

如何使用javascript修改代码以在表中动态添加行? 这是我现有的具有其他功能的代码。 在表格下方需要一个按钮来添加行。 我不需要一个弹出窗口,它会告诉您要添加多少行。 每次点击都会增加一行。

使用Javascript

var editing = false;

function catchIt(e) {
    if (editing) return;
    if (!document.getElementById || !document.createElement) return;
    if (!e) var obj = window.event.srcElement;
    else var obj = e.target;
    while (obj.nodeType != 1) {
        obj = obj.parentNode;
    }
    if (obj.tagName == 'INPUT' || obj.tagName == 'A') return;
    while (obj.nodeName != 'TD' && obj.nodeName != 'HTML') {
        obj = obj.parentNode;
    }
    if (obj.nodeName == 'HTML') return;
    var x = obj.innerHTML;
    var y = document.createElement('input');
    var z = obj.parentNode;
    z.insertBefore(y, obj);
    z.removeChild(obj);
    y.value = x;
    y.className = 'inp-edit';
    y.onblur = saveEdit;
    y.focus();
    editing = true;
}

function saveEdit() {
    var area = this;
    var y = document.createElement('TD');
    var z = area.parentNode;
    y.innerHTML = area.value;
    z.insertBefore(y, area);
    z.removeChild(area);
    editing = false;
}

document.onclick = catchIt;

HTML

    <table border=1 class="display">
    <thead>
        <tr class="portlet-section-header results-header">
            <th class="sorting">Operator ID</th>
            <th class="sorting">Status</th>
            <th class="sorting">First Name</th>
            <th class="sorting">Last Name</th>
            <th class="sorting">Email</th>
            <th class="sorting">Role</th>
            <th class="sorting_disabled">Select All
                <br />
                <input type="checkbox" onclick="checkAll(this);" name="check" />
            </th>
        </tr>
    </thead>
    <tbody>
        <tr class="odd">
            <td>Test1</td>
            <td>Active</td>
            <td>wsrc</td>
            <td>wsrc</td>
            <td>aa@aa.com</td>
            <td>SE Admin</td>
            <td>
                <input type="checkbox" value="3" onclick="checkAllRev(this);" name="deleteItem" />
            </td>
        </tr>
        <tr class="even">
            <td>Test2</td>
            <td>Inactive</td>
            <td>EAI</td>
            <td>SUBSYSTEM</td>
            <td>aa@aa.com</td>
            <td>API</td>
            <td>
                <input type="checkbox" value="4" onclick="checkAllRev(this);" name="deleteItem" />
            </td>
        </tr>
        <tr class="odd">
            <td>Test3</td>
            <td>Inactive</td>
            <td>Dunning</td>
            <td>Portal</td>
            <td>aa@aa.com</td>
            <td>API</td>
            <td>
                <input type="checkbox" value="5" onclick="checkAllRev(this);" name="deleteItem" />
            </td>
        </tr>
    </tbody>
</table>

您可以为要添加的行制作一个html模板,并在单击该按钮时附加该html。
例如,要添加的行包含两列,看起来像这样:

<tr>
    <td>Test</td>
    <td>Active</td>
</tr>

您可以将此模板保存在变量中。 例如:

var template = "<tr><td>Test</td><td>Active</td></tr>";

现在,jQuery的append函数可用于动态添加行。
由于您需要将行添加到tbody中,因此可以使用以下代码:

$("tbody").append(template);

可以使用类似的方法来完成所需的任务。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM