[英]Add Rows to HTML table and save on local drive using Javascript
I Have an HTML table that i want other people on shared local drive to be able to edit/add/remove rows. 我有一个HTML表,我希望共享本地驱动器上的其他人能够编辑/添加/删除行。
Well, I managed to make the table editable. 好吧,我设法使表格可编辑。
and now I need to generate this: 现在我需要生成这个:
<td><a href="javascript:;" class="btEdit">Edit</a></td>
everytime I add a new row, I want it to be cell number 9 每次添加新行时,我都希望它是第9个单元格
here's the script that add/remove rows to the table: 这是向表中添加/删除行的脚本:
<script language="javascript">
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 = "checkbox";
element1.name="chkbox[]";
cell1.appendChild(element1);
var cell2 = row.insertCell(1);
var element1 = document.createElement("input");
element1.type = "text";
element1.name = "txtbox[]";
cell2.appendChild(element1);
var cell3 = row.insertCell(2);
var element2 = document.createElement("input");
element2.type = "text";
element2.name = "txtbox[]";
cell3.appendChild(element2);
var cell4 = row.insertCell(3);
var element3 = document.createElement("input");
element3.type = "text";
element3.name = "txtbox[]";
cell4.appendChild(element3);
var cell5 = row.insertCell(4);
var element4 = document.createElement("input");
element4.type = "text";
element4.name = "txtbox[]";
cell5.appendChild(element4);
var cell6 = row.insertCell(5);
var element5 = document.createElement("input");
element5.type = "text";
element5.name = "txtbox[]";
cell6.appendChild(element5);
var cell7 = row.insertCell(6);
var element6 = document.createElement("input");
element6.type = "text";
element6.name = "txtbox[]";
cell7.appendChild(element6);
var cell8 = row.insertCell(7);
var element7 = document.createElement("input");
element7.type = "text";
element7.name = "txtbox[]";
cell8.appendChild(element7);
}
function deleteRow(tableID) {
try {
var table = document.getElementById(tableID);
var rowCount = table.rows.length;
for(var i=0; i<rowCount; i++) {
var row = table.rows[i];
var chkbox = row.cells[0].childNodes[0];
if(null != chkbox && true == chkbox.checked) {
table.deleteRow(i);
rowCount--;
i--;
}
}
}catch(e) {
alert(e);
}
}
</script>
https://jsfiddle.net/aytjv3ay/6/ https://jsfiddle.net/aytjv3ay/6/
$(function() {
var table = $('#theTable');
var count = 0;
//returns new row count
function addRow(table) {
var row = $('<tr class="row' + count + '">').appendTo(table);
for(var cell = 0; cell<=9; cell++) {
switch(cell) {
case 0:
$('<td class="cell' + cell + '">').appendTo(row).append('<input type="checkbox" name="chkbox[]"/></td>');
break;
case 1:
case 2:
case 3:
case 4:
case 5:
case 6:
case 7:
$('<td class="cell' + cell + '">').appendTo(row).append('<input type="text" name="txtbox[]"/></td>');
break;
case 8:
$('<td class="cell' + cell + '"><A href="#" class="edit edit' + count + '">edit</a></td>').appendTo(row);
break;
case 9:
$('<td class="cell' + cell + '"><A href="#" class="delt del' + count + '">X</a></td>').appendTo(row);
}
}
return ++count;
}
$(document).on('click', '.edit', function(e) {
var parent = $(e.target).parent();
$(e.target).remove();
$(parent).append('<input type="text" class="editThis"/>');
});
$(document).on('click', '.delt', function(e) {
e.preventDefault();
var cls = $(e.target).parent().parent().remove();
});
$('#addIt').on('click', function(e) {
e.preventDefault();
addRow(table);
});
});
Here is a JSFiddle with an example of how you can dynamically create rows and remove them. 这是一个JSFiddle,其中包含一个示例,说明如何动态创建和删除行。
As for saving the table, you can save an excel spreadsheet with something like js-xlsx library, which can be found here: https://github.com/SheetJS/js-xlsx 至于保存表,您可以使用类似js-xlsx库的东西保存一个excel电子表格,可以在这里找到: https : //github.com/SheetJS/js-xlsx
Otherwise, you'd have to manually create the HTML in a string and save that. 否则,您必须手动在字符串中创建HTML并将其保存。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.