javascript - 我们如何使用javascript根据表格中的第一行元素动态添加行?
问题描述
我有一个这样的 html 表
<table id="myTable" style="width:100%">
<tr>
<th>a</th>
<th>b</th>
<th>del</th>
</tr>
<tr>
<td><input type="text" id="a"></td>
<td><input type="text" id="b"></td>
<td><input type="submit" id="del" value="delete"></td>
</tr>
</table>
<td>
我想使用第一行 html 元素(内部)在表格底部创建一个新行。但在创建新行之前,它必须满足这个条件
Condition:
At least one of the textboxes in any given row should be not empty
我们可以通过单击行中相应的删除按钮来删除任何行。
我们如何使用javascript根据表格中的第一行元素动态添加行?
编辑:
尝试使用append
asinsertRow
方法将行代码附加到表中,但均无效。
mytable = document.getElementById("myTable");
newrow = `<tr>
<td><input type="text" id="a"></td>
<td><input type="text" id="b"></td>
<td><input type="submit" id="del" value="delete"></td>
</tr>`;
mytable.append(newrow);
mytable.insertRow(newrow);
解决方案
首先,在表格中创建您想要的最后一个表格行并将其显示属性设置为无。然后用javascript判断你想要的字段是否不为空。如果没有字段为空,请将最后一行的 display 属性设置为 block 或 inline-block。
<style>
#last-row{display: none;}
<style>
<table id="myTable" style="width:100%">
<tr>
<th>a</th>
<th>b</th>
<th>del</th>
</tr>
<tr>
<td><input type="text" id="a"></td>
<td><input type="text" id="b"></td>
<td><input type="submit" id="del" value="delete"></td>
<td id="last-row">ROW CONTENT</td>
</tr>
</table>
<script>
var a = document.getElementById("a").value;
var b = document.getElementById("b").value;
if(a && b){
document.getElementById("last-row").style.display="block";
}
</script>
推荐阅读
- machine-learning - 为什么没有根据特征结果对文本进行词形还原?
- node.js - NodeJS 分布式处理(分区 - 集群)
- mysql - 选择当前的sql_mode到一个变量中以便稍后恢复
- javascript - 如何在 HTML input='date' 上停止键盘输入以避免大量超出范围的日期
- webpack - Webpack 和 moment.js 不能一起工作
- android - 如何从其他活动/片段调用内联函数
- excel - 如何使用标题进行列过滤,就像我们在 excel 中进行行过滤一样
- nlp - 使用依赖解析来预测自定义实体标签
- azure-devops - Azure Pipelines GitHub 包不起作用
- angular - 更新到 Angular 9 httpclient 和 rxjs 类型错误