如何使用table.insertRow插入带有属性的行?

问题描述 投票:0回答:4

我有一个 html 表并使用

table.insertRow()
插入一个新行,但新行没有应用任何属性或格式。 如何使用行格式向表格添加一行?

<INPUT type="button" value="Add Row" onclick="addRow('dataTable')" />

<INPUT type="button" value="Delete Row" onclick="deleteRow('dataTable')" />

<TABLE id="dataTable" width="100%" align="center">
    <TR align="center" border="1">
        <TH></TH>
        <TH>ID </TH>
        <TH>Name</TH>
        <TH>Status</TH>
    </TR>
    <TR align="center">
        <TD><INPUT type="checkbox" name="chk"/></TD>
        <TD> 1 </TD>
        <TD> <INPUT type="text" value="Submission 1" /> </TD>
    <TD>Working version</TD>
    </TR>
</TABLE>

<script type="text/javascript">
    function addRow(tableID) {

        var table = document.getElementById(tableID);

        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);

        var cell1 = row.insertCell(0);
        var element1 = document.createElement("input");
        element1.type = "checkbox";
        cell1.appendChild(element1);

        var cell2 = row.insertCell(1);
        cell2.innerHTML = rowCount;

        var cell3 = row.insertCell(2);
        var element2 = document.createElement("input");
        element2.type = "text";
        cell3.appendChild(element2);

    }

    function deleteRow(tableID) {
        try {
        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;

        for(var i=0; i<rowCount; i++) {
            var row = table.rows[i];
            var chkbox = row.cells[0].childNodes[0];
            if(null != chkbox && true == chkbox.checked) {
                table.deleteRow(i);
                rowCount--;
                i--;
            }
        }
        }catch(e) {
            alert(e);
        }
    }

</script>
javascript html html-table format row
4个回答
2
投票

我发现使用jquery向表添加行更好

        $('#dataTable tr:last').after('<TR align="center"><TD><INPUT type="checkbox" name="chk"/></TD><TD>'+ rowCount + '</TD><TD> <INPUT type="text" value="Submission 1" /> </TD><TD>Working version</TD></TR>');

2
投票

要设置表行的类名称,您只需编辑 className 属性,如下所示

<script>
var table = document.getElementById("tableID");
var rowCount = table.rows.length;
var row = table.insertRow(rowCount-1);
row.className = "rowdiv";
</script>


0
投票

考虑到 insertRow() 通常是放置索引的地方,并且 var row = table.insertRow(rowCount);这里使用了,如何将其移动到表格的特定部分?


0
投票

如果使用Javascript ES6,您可以使用setAtribute方法来设置元素类名称、id名称或样式。下面是一个例子:

<script>
var table = document.getElementById("yourTableIDName");
var rowCount = table.rows.length-1;
var row = table.insertRow(rowCount);
row.setAttribute('class', 'yourClassName')
</script>

© www.soinside.com 2019 - 2024. All rights reserved.