引导表动态添加行Javascript
Bootstrap table add row dynamically Javascript
我在插入表行时遇到问题,我正在尝试做一些事情,但效果不佳。有人能告诉我如何用自动递增来修复添加按钮吗
我的简单代码如下。感谢您的回复。
<!DOCTYPE html>
<html>
<head>
<style>
table {
border-collapse: collapse;
margin: 100px;
}
table, td, th {
border: 1px solid black;
padding: 10px;
}
table td.crossed {
background-image: linear-gradient(to bottom right, transparent calc(50% - 1px), red, transparent calc(50% + 1px));
}
</style>
</head>
<body>
<table id="t1">
<tr>
<th></th>
<th></th>
<th></th>
<th></th>
<th><input style="margin-top:-200px; padding:10px" type="button" value="Add Row" onclick="add()" /></th>
</tr>
<tr>
<td>1.</td>
<td>
<input type="checkbox" />
</td>
<td>
<input type="date" id="mydate">
</td>
<td contenteditable='true'></td>
<td> <input type="button" value="Delete Row" onclick="deleteRow(this)" /></td>
</tr>
</table>
<script>
</script>
</body>
</html>
我在JSFiddle中为您创建了一个正在运行的示例。我是在您处理示例时创建的,它实际上正在协同工作(尽管它添加了一个额外的editbox,但第一行模板中没有)。
function createRowColumn(row) {
var column = document.createElement("td");
row.appendChild(column);
return column;
}
function addRow() {
var newrow = document.createElement("tr");
var numericColumn = createRowColumn(newrow);
var checkColumn = createRowColumn(newrow);
var dateColumn = createRowColumn(newrow);
var emptyColumn = createRowColumn(newrow);
var removeColumn = createRowColumn(newrow);
var checkbox = document.createElement("input");
checkbox.setAttribute("type", "checkbox");
checkColumn.appendChild(checkbox);
var datebox = document.createElement("input");
datebox.setAttribute("type", "date");
//datebox.setAttribute("id", "mydate"); //don't reuse id's
dateColumn.appendChild(datebox);
emptyColumn.setAttribute("contenteditable", "true");
var remove = document.createElement("input");
remove.setAttribute("type", "button");
remove.setAttribute("value", "Delete Row");
remove.setAttribute("onClick", "deleteRow(this)");
removeColumn.appendChild(remove);
var table = document.getElementById('t1');
var tbody = table.querySelector('tbody') || table;
var count = tbody.getElementsByTagName('tr').length;
numericColumn.innerText = count.toLocaleString() + '.';
tbody.appendChild(newrow);
}
以下是您在JSFiddle中提供的示例,它似乎在Chrome上运行良好。
几个调试/故障排除技巧可以帮助您自己找出答案:
-
打开浏览器的控制台。例如,在chrome上,转到"更多工具"->"开发人员工具"。
-
获取对要更新的表的引用:var table=document.getElementById("t1");
-
看看它(看看它是什么样子):
console.log ('table:',table);
-
查看其属性:
for (var property in table){ console.log('property:', property); }
-
看起来您引用的是一个不存在
deleteRow(..)
的javascript函数。您可能希望提供该函数(最初只是一个存根)或删除该引用。
相关文章:
- 在change事件javascript上动态添加行
- 在使用 javascript 动态添加行时,我正在增加索引值,但出现错误
- 用于在表中添加行的Javascript代码将单元格中的数据复制到新行中
- 如何在javascript中添加行
- 我正在通过 javascript 向表添加行,但是当我提交页面时,C# 看不到添加的行
- 在 JavaScript 中向现有表添加行
- JavaScript 动态地向表中添加行
- 使用 Javascript 向表中添加行
- 将子行添加到 JavaScript 源数据表
- 如何将 HTML 元素添加到这行 JavaScript 代码中
- 引导表动态添加行Javascript
- 使用JavaScript在HTML表中动态添加行,并通过提交按钮获得每个文本框的文本框值
- javascript动态添加列添加行
- 当我添加行的值时,JavaScript出现了一个奇怪的错误
- 动态添加行Javascript不工作在IE
- 如何使用AngularJS或JavaScript在按钮单击时删除生成JSON的额外添加行
- Javascript / Ajax -动态添加行的onchange事件
- 用javascript向jquery网格添加行
- 使用javascript添加行时无法使用表单验证
- Javascript行添加导致Javascript日历表单元素不工作