<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<!--导入bootstrap -->
<link rel="stylesheet" href="./lib/bootstrap.css" />
<!-- 导入jquery -->
<script src="./lib/jquery.js"></script>
</head>
<body style="padding: 15px;">
<!-- 添加图书的Panel面板 -->
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">添加新图书</h3>
</div>
<div class="panel-body form-inline">
<div class="input-group">
<div class="input-group-addon">书名</div>
<input type="text" class="form-control" id="iptBookname" placeholder="请输入书名">
</div>
<div class="input-group">
<div class="input-group-addon">作者</div>
<input type="text" class="form-control" id="iptAuthor" placeholder="请输入作者">
</div>
<div class="input-group">
<div class="input-group-addon">出版社</div>
<input type="text" class="form-control" id="iptPublisher" placeholder="请输入出版社">
</div>
<button id="btnAdd" class="btn btn-primary">添加</button>
</div>
</div>
<!-- 图书的表格 -->
<table class="table table-bordered table-hover">
<thead>
<tr>
<th>Id</th>
<th>书名</th>
<th>作者</th>
<th>出版社</th>
<th>操作</th>
</tr>
</thead>
<tbody id="tb"></tbody>
</table>
<script>
$(function () {
// 获取图书列表数据 页面初始化直接调用的函数
function getBookList() {
$.get('http://www.liulongbin.top:3006/api/getbooks', function (res) {
if (res.status !== 200) return alert('获取数据失败!')
var rows = [] //用于存储每一行的信息
// $.each(要做循环的数据,function(每循环一项的索引,当前循环项){})
// push() 往数组的最后一行存放数据
$.each(res.data, function (i, item) {
rows.push('<tr><td>' + item.id + '</td><td>' + item.bookname + '</td><td>' + item.author + '</td><td>' + item.publisher + '</td> <td><a href="javascript:;" class="del" data-id="' + item.id + '">删除</a></td></tr>')
console.log(rows)
})
$('#tb').empty().append(rows.join(''))
})
}
//直接进行调用
getBookList()
// 因为a链接是后面我们通过dom元素操作上去的用这种方法获取不到,
// 后期判断进去的元素需要通过代理的方式为a链接绑定事件
/* $('.del').on('click', function () {
console.log('ok')
}) */
// 因为a链接是后面我们通过dom元素操作上去的用普通绑定事件的方法获取不到,
// 后期判断进去的元素需要通过代理的方式为a链接绑定事件 事件委托
// 通过代理的方式为动态添加的元素绑定点击事件 通过绑定父节点,代理到指定的后期元素绑定事件
$('tbody').on('click', '.del', function () {
var id = $(this).attr('data-id') // 获取到自定义属性
$.get('http://www.liulongbin.top:3006/api/delbook', { id: id }, function (res) {
if (res.status !== 200) return alert('删除图书失败!')
getBookList()
})
})
$('#btnAdd').on('click', function () {
var bookname = $('#iptBookname').val().trim()
var author = $('#iptAuthor').val().trim()
var publisher = $('#iptPublisher').val().trim()
if (bookname.length <= 0 || author.length <= 0 || publisher.length <= 0) {
return alert('请填写完整的图书信息!')
}
$.post('http://www.liulongbin.top:3006/api/addbook', { bookname: bookname, author: author, publisher: publisher }, function (res) {
if (res.status !== 201) return alert('添加图书失败!')
getBookList()
$('#iptBookname').val('')
$('#iptAuthor').val('')
$('#iptPublisher').val('')
})
})
})
</script>
</body>
</html>
前端案例
最新推荐文章于 2024-04-20 03:19:45 发布