gpt4 book ai didi

javascript - 在 javascript 的表中动态添加/删除行

转载 作者:搜寻专家 更新时间:2023-11-01 04:49:10 26 4
gpt4 key购买 nike

我想动态地添加/删除表格中的行。我有 javascript 函数来添加和删除行。但是,我想要每一行旁边的删除按钮,以便我可以删除特定的行。

而且我只想在第一行完全填满时添加一行。

删除行的函数

 function removeRowFromTable()
{
var tbl = document.getElementById('tblSample');
var lastRow = tbl.rows.length;
if (lastRow > 2) tbl.deleteRow(lastRow - 1);
}

添加行的函数:

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 = "text";
cell1.appendChild(element1);

var cell2 = row.insertCell(1);
var element2 = document.createElement("input");
element2.type = "text";
cell2.appendChild(element2);
}

我的 table :

<table id="tableId">
<tr><td>Host Name</td><td>Directory</td></tr>
<tr><td><input type="text"/></td><td><input type="text"/></td></tr>
<tr><td><input type="button" value="+" onclick="addRow(tableId)"/></td>
<td><input type="button" value="-" onclick="removeRowFromTable()"/></td></tr>
</table>

感谢任何帮助!提前致谢!!!

最佳答案

如果你在每一行上放置一个删除按钮,那么:

<tr>
<td><input type="button" value="Delete row" onclick="deleteRow(this)">
<td><input type="text">
<td><input type="text">
</tr>

而 deleteRow 函数可以是:

function deleteRow(el) {

// while there are parents, keep going until reach TR
while (el.parentNode && el.tagName.toLowerCase() != 'tr') {
el = el.parentNode;
}

// If el has a parentNode it must be a TR, so delete it
// Don't delte if only 3 rows left in table
if (el.parentNode && el.parentNode.rows.length > 3) {
el.parentNode.removeChild(el);
}
}

顺便说一句,如果您所有的行都具有相同的内容,那么通过克隆现有行来添加行会快得多:

function addRow(tableID) {
var table = document.getElementById(tableID);

if (!table) return;

var newRow = table.rows[1].cloneNode(true);

// Now get the inputs and modify their names
var inputs = newRow.getElementsByTagName('input');

for (var i=0, iLen=inputs.length; i<iLen; i++) {
// Update inputs[i]
}

// Add the new row to the tBody (required for IE)
var tBody = table.tBodies[0];
tBody.insertBefore(newRow, tBody.lastChild);
}

关于javascript - 在 javascript 的表中动态添加/删除行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12206959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com