gpt4 book ai didi

javascript - 如何使用给定行的 html 表中的输入字段创建动态行

转载 作者:行者123 更新时间:2023-12-02 14:28:03 25 4
gpt4 key购买 nike

我对 Html 和 javascript 很陌生。我想在单击按钮时创建带有表中输入字段的动态行,即用户给出的行数。在我的代码中,动态创建行,但它不附加前一行。它是新鲜创建的。但是,如果表已经创建,我想追加行。

这是我的代码:

function createTable() {
var a;

a = document.getElementById('tb1').value;

if (a == "") {
alert("Please enter some numeric value");
} else {
var rows = "<th>Item Name</th><th>Quantity</th><th>QuantityType</th><th>Amount</th>";
for (var i = 0; i < a; i++) {
rows += "<tr><td><input type='text' name='" + "name".concat(i+1) + "'></td><td><input type='text' name='" + "quantity".concat(i+1) + "'></td><td><input type='text' name='" + "qtype".concat(i+1) + "'></td><td id='amt'><input type='text' id='sum' onkeyup='myfunction(this.value);' name='" + "total".concat(i+1) + "'></td></tr>";
}

document.getElementById("table").innerHTML = rows;
}
}
div {
background: red;
margin: 5px;
}

table {
border: 2px solid black;
}

td {
padding: 10px;
border: 1px solid lightgrey;
}
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
</head>
<body>
<input type="text" id="tb1"/>
<button type="button" onclick='createTable()'>Click Me!</button>
<table id="table" class="order-table table" name="table1" required>
</table>
</body>
</html>

请大家帮忙!

提前致谢..

最佳答案

Use Element.appendChild instead of innerHTML

  • Element.firstChild 将返回元素的 first-child
  • querySelectorAll 将根据指定的选择器返回 NodeList
  • Element.appendChild 将在元素中追加新的 Node,而不影响元素中的现有内容。

function createTable() {
var a = document.getElementById('tb1').value;
if (a == "") {
alert("Please enter some numeric value");
} else {
var th = document.querySelectorAll('#table th');//To check whether `TD` is appended in table or not!
if (!th.length) {
//If not appended, then append TD in table
var rows = "<th>Item Name</th><th>Quantity</th><th>QuantityType</th><th>Amount</th>";
var table = document.createElement('table');
table.innerHTML = rows;
document.getElementById("table").appendChild(table.firstChild);
}

for (var i = 0; i < a; i++) {
var elems = '';
elems += "<tr><td><input type='text' name='" + "name".concat(i + 1) + "'></td><td><input type='text' name='" + "quantity".concat(i + 1) + "'></td><td><input type='text' name='" + "qtype".concat(i + 1) + "'></td><td id='amt'><input type='text' id='sum' onkeyup='myfunction(this.value);' name='" + "total".concat(i + 1) + "'></td></tr>";
var table = document.createElement('table');
table.innerHTML = elems;
document.getElementById("table").appendChild(table.firstChild);
}
}
}
div {
background: red;
margin: 5px;
}
table {
border: 2px solid black;
}
td {
padding: 10px;
border: 1px solid lightgrey;
}
<input type="text" id="tb1" />
<button type="button" onclick='createTable()'>Click Me!</button>
<table id="table" class="order-table table" name="table1" required>
</table>

关于javascript - 如何使用给定行的 html 表中的输入字段创建动态行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38052099/

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