javascript - 如何使用 javascript 在表中动态创建列
问题描述
当我单击按钮时,我想创建一个与旧列相同的新列。[希望输出]
$('#btnAddCol').click(function() {
myform.find('tr').each(function() {
var trow = $(this);
if (trow.index() === 0) {
trow.append('<td class="calculated-value">Chemical</td>');
} else {
trow.append('<td><input type="text" name="cb' + iter + '"/></td>');
}
});
iter += 1;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" id="btnAddCol" style="margin-left: 79%;">add column</button>
当我单击添加列按钮时,新列将创建并包含列标题和输入字段。
解决方案
问题是,如果表格从一开始就是空白的,它将能够运行each()
循环 for<tr>
因为没有 one <tr>
。
所以,在这里我在第一行应用了一个标题,在第二行应用了一个空白文本框,这意味着 each() 循环将为 each 播放两次<tr>
。
检查以下代码:
var iter = 0;
$('#btnAddCol').click(function () {
$('#myTable tr').each(function (e) {
var trow = $(this);
if (trow.index() === 0) {
trow.append('<td class="calculated-value">Chemical</td>');
} else {
trow.append('<td><input type="text" name="cb' + iter + '" /></td>');
}
});
iter++;
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="myTable" border="1">
<tr><td>Heading</td></tr>
<tr><td><input type="text" name="cb'+iter+'" /></td></tr>
</table>
<button type="button" id="btnAddCol" style="margin-left: 79%;">add column</button>
推荐阅读
- google-cloud-platform - 启动后数据流作业失败
- html - 在 HTML (webpack) 上找不到图像
- python - ImportError:没有名为 jumpssh 的模块
- python - 如何从 python 中由 typeform 提供支持的表单中访问值
- flutter - 读取 TextField 输入并在 Flutter 中显示为 Text 小部件
- flutter - Flutter 不支持的操作:在复合列表布局上添加
- javascript - 即使代码在那里,画布也不显示
- flutter - 如何在 Flutter 中为容器提供自定义边框?
- azure-cosmosdb - Cosmos 在门户与代码中查询往返
- python - 我正在尝试从字典中过滤掉非英语单词,并用 python 只添加英语单词,但我不知道该怎么做