#ajax的使用案例和接口的使用
##图书管理案例
****1首先封装一个自定义函数 采用get 获取图书的列表数据
****2在使用each把获取过来的data里面的数据进行遍历 动态添加tr td
****还要把表格里面的tbody的结构清空然后把新添加的tr `td追加到tbody里面`
```我们还可以进行增添删除操作
```1删除操作:.通过代理的方式为动态添加的元素绑定点击事件 给a添加w3c的属性方法 data-id
声明一个变量接收 同attr返回被接收的元素
2.添加:同时给添加按钮绑定一个点击事件,声明变量接收三个input里面的值
同时使用post发起提交请求,把声明的变量提交到接口,同时需要给这个点击函数做一个判断条件,里面的值不能小于或者等于零
$(function () {
//获取图书列表数据
function getBookList() {
$.get('http://www.liulongbin.top:3006/api/getbooks', function (res) {
console.log(res);
var rows = []
$.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>')
// var index = i;
// var item1 = item;
// var one = item.bookname;
// console.log(one);
// // console.log(item1);
// // console.log(index);
})
$('#tb').empty().append(rows.join(''))
})
}
getBookList();
//通过代理方式为动态添加的元素绑定点击事件
$('#tb').on('click', '.del', function () {
var id = $(this).attr("data-id")
// console.log(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('请输入完整的内容')
}
// 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()
})
})
})
- ```