Я новичок и пытаюсь закодировать таблицу, в которой вы можете динамически создавать, редактировать и удалять таблицы. Пока что я могу создавать скриншоты и удалять их. Я борюсь со своим кодом, так как редактирование не будет работать:
$("btn3").click(function(){
$("table tbody").find("input [name=record]").each(function(){
if($(this).is(":checked")){
var myRow = readInput();
$(this).closest("tr").replaceWith("<tr><td><input type='checkbox' name='record'/></td><td>" + myRow.id + "</td><td>" +
myRow.name + "</td><td>" + myRow.surname + "</td><td>" + myRow.position + "</td><td>" + myRow.stat + "</td></tr>");
}
});
});
Мой стол выглядит так:
Кнопка «btn3» активна, но ничего не происходит.
Было бы здорово, если бы кто-то мог мне помочь.
РЕДАКТИРОВАТЬ: HTML часть:
</head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 60%;
}
td, th {
border: 1px solid #dddddd;
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<body>
<h2>Employee data</h2>
First Name:<input type="text" name="fname" id="fnameid" /><br/><br/>
Last Name:<input type="text" name="lname" id="lnameid" /><br/><br/>
Position:<input type="text" name="position" id="positionid" /><br/><br/>
Status:<input type="text" name="stat" id="statid" /><br/><br/>
<button id="btn1">New Employee</button>
<button id="btn2">Delete</button>
<button id="btn3">Update</button>
<table id = "employeeTable" class="display" style="width:60%">
<thead>
<tr>
<th></th>
<th>ID</th>
<th>Name</th>
<th>Surname</th>
<th>Position</th>
<th>Status</th>
</tr>
</thead>
<tbody></tbody>
</table>
UPDATE2:
Редактирование теперь работает, однако я не могу удалить строки, которые были отредактированы ранее ...
Код выглядит следующим образом:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
function Row(id, name, surname, position, stat){
this.id = id;
this.name = name;
this.surname = surname;
this.position = position;
this.stat = stat;
}
function readInput(){
var fname = $("#fnameid").val();
var lname = $("#lnameid").val();
var position = $("#positionid").val();
var stat = $("#statid").val();
var nRow = new Row(new Date($.now()), fname, lname, position, stat);
return nRow;
}
//new Employee
$("#btn1").click(function(){
var myRow = readInput();
$("table tbody").append("<tr><td><input type='checkbox' name='record'/></td><td>" + myRow.id + "</td><td>" +
myRow.name + "</td><td>" + myRow.surname + "</td><td>" + myRow.position + "</td><td>" + myRow.stat + "</td></tr>");
});
//delete
$("#btn2").click(function(){
$("table tbody").find("input[name='record']").each(function(){
if($(this).is(":checked")){
$(this).parents("tr").remove();
}
});
});
//update
$("#btn3").click(function(){
var myRow = readInput();
$("table tbody").find("input[name='record']").each(function(){
if($(this).is(":checked")){
var curRow = $(this).parent().parent()
curRow.replaceWith("tr><td><input type='checkbox' name='record'/></td><td>" + myRow.id + "</td><td>" +
myRow.name + "</td><td>" + myRow.surname + "</td><td>" + myRow.position + "</td><td>" + myRow.stat + "</td></tr>");
}
});
});
});
</script>
</head>
<style>
table {
font-family: arial, sans-serif;
border-collapse: collapse;
width: 60%;
}
td, th {
border: 1px solid #dddddd;
border: 1px solid #dddddd;
text-align: left;
padding: 8px;
}
tr:nth-child(even) {
background-color: #dddddd;
}
</style>
<body>
<h2>Employee data</h2>
First Name:<input type="text" name="fname" id="fnameid" /><br/><br/>
Last Name:<input type="text" name="lname" id="lnameid" /><br/><br/>
Position:<input type="text" name="position" id="positionid" /><br/><br/>
Status:<input type="text" name="stat" id="statid" /><br/><br/>
<button id="btn1">New Employee</button>
<button id="btn2">Delete</button>
<button id="btn3">Update</button>
<table id = "employeeTable" class="display" style="width:60%">
<thead>
<tr>
<th></th>
<th>ID</th>
<th>Name</th>
<th>Surname</th>
<th>Position</th>
<th>Status</th>
</tr>
</thead>
<tbody>
<tr>
</tr>
</tbody>
</table>
<form id="newEmploy"
<script>
</script>
</body>
</html>