标签:element table ide val 更新 type head model lan
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta http-equiv="x-ua-compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>周末作业</title>
<style>
.cover {
position: fixed;
left: 0;
right: 0;
top: 0;
bottom: 0;
background-color: #616166;
opacity: 0.4;
z-index: 999;
}
.model {
width: 600px;
height: 400px;
background-color: white;
position: fixed;
left: 50%;
top: 50%;
margin-left: -300px;
margin-top: -200px;
z-index: 1000;
}
.hide {
display: none;
}
</style>
</head>
<body>
<button class="add">add</button>
<table border="2">
<thead>
<tr>
<th>#</th>
<th>name</th>
<th>hooby</th>
<th rowspan="2">operation</th>
</tr>
</thead>
<tbody>
<tr>
<td>1</td>
<td>egon</td>
<td>dance</td>
<td>
<button class="edit">edit</button>
<button class="delete">delete</button>
</td>
</tr>
<tr>
<td>2</td>
<td>yuanju</td>
<td>fucksky</td>
<td>
<button class="edit">edit</button>
<button class="delete">delete</button>
</td>
</tr>
<tr>
<td>3</td>
<td>alex</td>
<td>haircut</td>
<td>
<button class="edit">edit</button>
<button class="delete">delete</button>
</td>
</tr>
</tbody>
</table>
<div id="myCover" class="cover hide"></div>
<div id="myModel" class="model hide">
<label for="model-name">name</label>
<input id="model-name" type="text">
<label for="model-hobby">hobby</label>
<input id="model-hobby" type="text">
<button class="submit" id="model-submit">提交</button>
<button class="close" id="model-close">关闭</button>
</div>
<script src="jquery-3.4.1.js"></script>
<script>
//show model
function showModel() {
$(‘#myCover,#myModel‘).removeClass(‘hide‘);
}
//close model
function closeModel() {
$(‘#myModel‘).find(‘input‘).val(‘‘); //清空模态框中的input
$(‘#myCover,#myModel‘).addClass(‘hide‘);
}
//给新增绑定事件
$(‘.add‘).on(‘click‘, function () {
showModel();
});
//弹出模态框
//取消按钮
$(‘.close‘).on(‘click‘, function () {
//$(‘#myModel input‘).val(‘‘); 效率低
closeModel();//隐藏模态框
});
//edit绑定
//需要使用事件委托 基于已经存在的元素(页面加载完后存在的标签)绑定事件
$(‘tbody‘).on(‘click‘,‘.edit‘, function () {
showModel();
//将原来的数据填写到模块框中的input
var $currentTrEle = $(this).parent().parent();
//将当前行jquery对象保存,用于判断提交是新增还是编辑下的模块框提交
$(‘#myModel‘).data(‘currentTr‘, $currentTrEle);
var name = $currentTrEle.children().eq(1).text();
var hobby = $currentTrEle.children().eq(2).text();
$(‘#model-name‘).val(name);
$(‘#model-hobby‘).val(hobby);
})
//模态框中的提交按钮绑定事件
$(‘#model-submit‘).on(‘click‘, function () {
//取到用户填写的input的值.
var name = $(‘#model-name‘).val();
var hobby = $(‘#model-hobby‘).val();
var $myModelEle = $(‘#myModel‘)
//根据编辑还是新增做不同的操作
//若编辑,根据先前编辑按钮的一行
//难点在于如何让确定先前编辑哪一行,利用data方法存具体的jquery对象
var $currentTrEle = $myModelEle.data(‘currentTr‘)
if ($currentTrEle !== undefined){
//edit状态
$currentTrEle.children().eq(1).text(name);
$currentTrEle.children().eq(2).text(hobby);
//清空之前保存的当前行
$myModelEle.removeData()
}else{
//创建TR标签,将得到的数据填写进去
var trEle = document.createElement(‘tr‘);
var number = $(‘tr‘).length
$(trEle).html(
‘<td>‘ + number + ‘</td>‘ +
‘<td>‘ + name + ‘</td>‘ +
‘<td>‘ + hobby + ‘</td>‘ +
‘<td><button class="edit">edit</button> <button class="delete">delete</button></td>‘
);
//若新增,则生成一条新的tr,加到label最后
//添加数据到tbody中
$(‘tbody‘).append(trEle);
}
closeModel()
});
$(‘tbody‘).on(‘click‘,‘.delete‘,function () {
//删除点积删除按钮的当前行
var $currentTrEle = $(this).parent().parent();
//更新tbody序号
//找到当前行后所有的tr,依次更新序号
$currentTrEle.nextAll().each(function () {
//取到原来的序号
var oldnumber = $(this).children().first().text();
$(this).children().first().text(oldnumber-1) ;
$currentTrEle.remove();
})
})
</script>
</body>
</html>
标签:element table ide val 更新 type head model lan
原文地址:https://www.cnblogs.com/njuwyx/p/11661944.html