From f90df0ed992f1617506313d695bbdd20b0488183 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BD=B3=E7=82=9C?= <626104790@qq.com> Date: Mon, 11 Dec 2023 22:15:39 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BD=9C=E4=B8=9A1209?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...34\344\270\232\347\254\224\350\256\260.md" | 143 ++++++++++++++++++ 1 file changed, 143 insertions(+) create mode 100644 "26\351\231\210\344\275\263\347\202\234/day1209\344\275\234\344\270\232\347\254\224\350\256\260.md" diff --git "a/26\351\231\210\344\275\263\347\202\234/day1209\344\275\234\344\270\232\347\254\224\350\256\260.md" "b/26\351\231\210\344\275\263\347\202\234/day1209\344\275\234\344\270\232\347\254\224\350\256\260.md" new file mode 100644 index 0000000..6c89142 --- /dev/null +++ "b/26\351\231\210\344\275\263\347\202\234/day1209\344\275\234\344\270\232\347\254\224\350\256\260.md" @@ -0,0 +1,143 @@ +作业 + +``` +/** + * 目标1:渲染图书列表 + * 1.1 获取数据 + * 1.2 渲染数据 + */ +const tbody = document.querySelector('.list'); +// 通用的外号 +const creator = '大帅哥'; +// 封装一个先获取数据,再渲染数据的函数 +function render() { + axios({ + url: 'https://hmajax.itheima.net/api/books', + params: { + creator: creator + } + }).then(result => { + // console.log(result); + const bookList = result.data.data; + const trHtml = bookList.map((item, i) => { + const { id, author, bookname, publisher } = item + return ` + + ${i + 1} + ${bookname} + ${author} + ${publisher} + + 删除 + 编辑 + + + ` + }).join('') + // console.log(trHtml); + tbody.innerHTML = trHtml; + }) +} +// 打开网页就得先调用一次函数 +render(); +// 实现添加事件 +const form = document.querySelector('.add-form'); +// 为了控制添加的弹窗,先获取 +const addModalBox = document.querySelector('.add-modal'); +const addModal = new bootstrap.Modal(addModalBox); +// 给保存添加点击事件 +const add = document.querySelector('.add-btn') +add.addEventListener('click', () => { + // 采集数据 + const book = serialize(form, { hash: true, empty: true }) + console.log(book); + // 将数据用axios调用接口,提交给服务器 + axios({ + url: 'https://hmajax.itheima.net/api/books', + method: 'post', + data: { + creator, + ...book + } + }).then(result => { + // console.log(result); + // 清空表单 + form.reset(); + // 关闭弹窗 + addModal.hide(); + // 重新获取列表并渲染 + render(); + }) + +}) + +// 删除事件 +tbody.addEventListener('click', (e) => { + // console.log(e.target); + if (e.target.classList.contains('del')) { + console.log('删除'); + // 获取删除id + // console.log(e.target.parentNode.dataset.id); + const id = e.target.parentNode.dataset.id + axios({ + url: `https://hmajax.itheima.net/api/books/${id}`, + method: 'delete', + + }).then(result => { + console.log(result) + // 重新渲染 + render() + }) + } +}) + +// 编辑图书功能 +tbody.addEventListener('click', (e) => { + if (e.target.className === 'edit') { + // console.log('修改'); + // 创建一个弹窗的对象 + const form = document.querySelector('.edit-form') + // 获取弹窗 + const edit = document.querySelector('.edit-modal') + const editModal = new bootstrap.Modal(edit) + editModal.show() + // 获取id + const id = e.target.parentNode.dataset.id; + // 通过id调用接口 查询对应的图书数据 + axios({ + url: 'https://hmajax.itheima.net/api/books/' + id + }).then(result => { + // console.log(result.data.data); + const book = result.data.data; + const { id, author, bookname, publisher } = book; + // 将图书馆数据显示到表单 + form.querySelector('.id').value = id; + form.querySelector('.bookname').value = bookname; + form.querySelector('.author').value = author; + form.querySelector('.publisher').value = publisher; + }) + + // 修改按钮 + const editbtn = document.querySelector('.edit-btn'); + editbtn.addEventListener('click', () => { + // 采集数据 + const book = serialize(form, { hash: true, empty: true }) + console.log(book); + // 提交接口 + axios({ + url: 'https://hmajax.itheima.net/api/books/' + id, + method: 'put', + data:{ + creator, + ...book + } + }).then(result => { + editModal.hide() + render() + // console.log(result); + }) + }) + } +}) +``` +\ No newline at end of file \ No newline at end of file -- Gitee From b38cd38a57b29e8a685dd4774d4240a6cc6595be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=88=E4=BD=B3=E7=82=9C?= <626104790@qq.com> Date: Wed, 13 Dec 2023 13:06:59 +0800 Subject: [PATCH 2/2] zuoyebiji --- ...34\344\270\232\347\254\224\350\256\260.md" | 241 ++++++++++++++++++ 1 file changed, 241 insertions(+) create mode 100644 "26\351\231\210\344\275\263\347\202\234/1212\344\275\234\344\270\232\347\254\224\350\256\260.md" diff --git "a/26\351\231\210\344\275\263\347\202\234/1212\344\275\234\344\270\232\347\254\224\350\256\260.md" "b/26\351\231\210\344\275\263\347\202\234/1212\344\275\234\344\270\232\347\254\224\350\256\260.md" new file mode 100644 index 0000000..d4a90f6 --- /dev/null +++ "b/26\351\231\210\344\275\263\347\202\234/1212\344\275\234\344\270\232\347\254\224\350\256\260.md" @@ -0,0 +1,241 @@ +## 笔记 + +## jQuery + +jQuery 是一个JavaScript库 + +jQuery极大简化JavaScript编程 + +### jQuery 库特性 + +jQuery 是一个 JavaScript 函数库。 + +jQuery 库包含以下特性: + +- HTML 元素选取 +- HTML 元素操作 +- CSS 操作 +- HTML 事件函数 +- JavaScript 特效和动画 +- HTML DOM 遍历和修改 +- AJAX +- Utilities + +### 添加 jQuery库 + +jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数。 + +可以通过下面的标记把 jQuery 添加到网页中: + +``` + + + +``` + +请注意, + +``` + +### 使用 Microsoft 的 CDN + +``` + + + +``` + +### 使用百度的CDN + + "> + +## jQuery 语法实例 + +- [$(this).hide()](https://gitee.com/link?target=https%3A%2F%2Fwww.w3school.com.cn%2Ftiy%2Ft.asp%3Ff%3Djquery_hide_this) + + 演示 jQuery hide() 函数,隐藏当前的 HTML 元素。 + +- [$("#test").hide()](https://gitee.com/link?target=https%3A%2F%2Fwww.w3school.com.cn%2Ftiy%2Ft.asp%3Ff%3Djquery_hide_id) + + 演示 jQuery hide() 函数,隐藏 id="test" 的元素。 + +- [$("p").hide()](https://gitee.com/link?target=https%3A%2F%2Fwww.w3school.com.cn%2Ftiy%2Ft.asp%3Ff%3Djquery_hide_p) + + 演示 jQuery hide() 函数,隐藏所有 + + 元素。 + +- [$(".test").hide()](https://gitee.com/link?target=https%3A%2F%2Fwww.w3school.com.cn%2Ftiy%2Ft.asp%3Ff%3Djquery_hide_class) + + 演示 jQuery hide() 函数,隐藏所有 class="test" 的元素。 + +## jQuery 语法 + +jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。 + +基础语法是:*$(selector).action()* + +- 美元符号定义 jQuery +- 选择符(selector)“查询”和“查找” HTML 元素 +- jQuery 的 action() 执行对元素的操作 + +### 示例 + +$(this).hide() - 隐藏当前元素 + +$("p").hide() - 隐藏所有段落 + +$(".test").hide() - 隐藏所有 class="test" 的所有元素 + +$("#test").hide() - 隐藏所有 id="test" 的元素 + +**提示:**jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。在本教程接下来的章节,您将学习到更多有关选择器的语法。 + +关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元素。 + +jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。 + +选择器允许您对 HTML 元素组或单个元素进行操作。 + +在 HTML DOM 术语中: + +选择器允许您对 DOM 元素组或单个 DOM 节点进行操作。 + +## jQuery 元素选择器 + +jQuery 使用 CSS 选择器来选取 HTML 元素。 + +$("p") 选取 + +元素。 + +$("p.intro") 选取所有 class="intro" 的 + +元素。 + +$("p#demo") 选取所有 id="demo" 的 + +元素。 + +## jQuery 事件函数 + +jQuery 事件处理方法是 jQuery 中的核心函数。 + +事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。术语由事件“触发”(或“激发”)经常会被使用。 + +通常会把 jQuery 代码放到 + +部分的事件处理方法中: + +### 实例 + +``` + + + + + + + +

This is a heading

+

This is a paragraph.

+

This is another paragraph.

+ + + + +``` + +## 单独文件中的函数 + +如果您的网站包含许多页面,并且您希望您的 jQuery 函数易于维护,那么请把您的 jQuery 函数放到独立的 .js 文件中。 + +当我们在教程中演示 jQuery 时,会将函数直接添加到 + +部分中。不过,把它们放到一个单独的文件中会更好,就像这样(通过 src 属性来引用文件): + +### 实例 + +``` + + + + +``` + +## jQuery 名称冲突 + +jQuery 使用 $ 符号作为 jQuery 的简介方式。 + +某些其他 JavaScript 库中的函数(比如 Prototype)同样使用 $ 符号。 + +jQuery 使用名为 noConflict() 的方法来解决该问题。 + +*var jq=jQuery.noConflict()*,帮助您使用自己的名称(比如 jq)来代替 $ 符号。 + + + +## 作业 + +~~~ html + + + + + + + Document + + + + + + + +~~~ \ No newline at end of file -- Gitee