知識點:
操作table: insertRow(),deleteRow(),insertCell(),deleteCell()
table表格中的常用方法和屬性:
deleteRow(行號):刪除行
rowIndex:獲取當前行數的數值
insertRow(行號):添加一行,行數的值
insertCell(數字):添加的是td單元格,數字代表單元格
parentNode:代表找的是父節點
內容比較簡單,直接上代碼
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>table</title>
<style type="text/css">
*{
margin: 0;
padding: 0;
}
li{
list-style: none;
}
table{
width: 600px;
height: auto;
border-collapse: collapse;
margin: 10px auto;
text-align: center;
}
th,td{
padding: 10px;
}
table tr:nth-child(1){
text-align: right;
}
input{
outline: none;
}
</style>
</head>
<body>
<table border="1">
<caption>增刪改查</caption>
<tr>
<td colspan="1">
<button class="insertTr">插入行</button>
</td>
<td colspan="4">
篩選:<input type="text" name="filterStudent">
</td>
</tr>
<tr>
<th>學號</th>
<th>姓名</th>
<th>性別</th>
<th>年齡</th>
<th>操作</th>
</tr>
<tr>
<td>01</td>
<td>妞妞</td>
<td>女</td>
<td>10</td>
<td>
<button class="edit">編輯</button>
<button class="delete">刪除</button>
</td>
</tr>
<tr>
<td>02</td>
<td>泡泡</td>
<td>男</td>
<td>16</td>
<td>
<button class="edit">編輯</button>
<button class="delete">刪除</button>
</td>
</tr>
<tr>
<td>03</td>
<td>哈哈</td>
<td>男</td>
<td>17</td>
<td>
<button class="edit">編輯</button>
<button class="delete">刪除</button>
</td>
</tr>
</table>
<script type="text/javascript">
/*
deleteRow(行號):刪除行
rowIndex:獲取當前行數的數值
*/
var insertTr = document.querySelector('.insertTr');
var deleteBtn = document.querySelector('.delete');
var tableEle = document.querySelector('table');
/*插入*/
insertTr.addEventListener('click',function(){
tableEle.insertRow(tableEle.rows.length);/*插入空行*/
console.log(tableEle.rows[1])
for(var i=0;i<tableEle.rows[1].cells.length;i++){
tableEle.rows[tableEle.rows.length-1].insertCell(i);
}
tableEle.rows[tableEle.rows.length-1].cells[i-1].innerHTML = `
<button class="edit">編輯</button>
<button class="delete">刪除</button>
`
})
/* 編輯+刪除功能 */
tableEle.addEventListener('click',function(){
var currentRow=event.target.parentNode.parentNode;
/*編輯*/
if(event.target.className=="edit"){
/*
編輯代碼
cells集合返回表格中所有<td> 或<th> 元素
*/
if(!currentRow.cells[0].isContentEditable){
for(var i=0;i<currentRow.cells.length-1;i++){
currentRow.cells[i].contentEditable = true;
event.target.textContent="保存";
currentRow.cells[0].focus();
}
}else{
for(var i=0;i<currentRow.cells.length-1;i++){
currentRow.cells[i].contentEditable = false;
event.target.textContent="編輯";
}
}
}
/*刪除*/
if(event.target.className=="delete"){
var question = confirm('確定刪除本行?');
if(question){
var index;
/*
rows 集合返回表格中所有行(TableRow 對象)的一個數組
*/
for(var i=0;i<tableEle.rows.length;i++){
if(tableEle.rows[i] == currentRow){
index = i;
console.log(index);
break;
}
}
/*
操作table: insertRow(),deleteRow(),insertCell(),deleteCell()
*/
tableEle.deleteRow(index);
}
}
})
</script>
</body>
</html>
