From fcd818c6b204ab85bf6d1218655a94ee681af219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B1=95?= <1742965070@qq.com> Date: Fri, 24 Nov 2023 04:59:23 +0000 Subject: [PATCH 1/2] =?UTF-8?q?=E6=9E=97=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 林展 <1742965070@qq.com> --- .../20231123/\347\254\224\350\256\260.md" | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 "03\346\236\227\345\261\225/20231123/\347\254\224\350\256\260.md" diff --git "a/03\346\236\227\345\261\225/20231123/\347\254\224\350\256\260.md" "b/03\346\236\227\345\261\225/20231123/\347\254\224\350\256\260.md" new file mode 100644 index 0000000..7d33cfc --- /dev/null +++ "b/03\346\236\227\345\261\225/20231123/\347\254\224\350\256\260.md" @@ -0,0 +1,5 @@ +# 笔记 + +取消默认行为 事件对象.preventDefault() + +创建新节点 .document.createElement(标签名) \ No newline at end of file -- Gitee From 7bd1b0c8df9ef9bf3d2c95c6f0e031a234325fb8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9E=97=E5=B1=95?= <1742965070@qq.com> Date: Sun, 26 Nov 2023 08:40:39 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=E6=9E=97=E5=B1=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 林展 <1742965070@qq.com> --- .../css/index.css" | 71 +++++++++ .../do.js" | 60 ++++++++ ...\350\241\250\346\241\210\344\276\213.html" | 54 +++++++ ...10\345\231\250\345\217\202\346\225\260.md" | 137 ++++++++++++++++++ 4 files changed, 322 insertions(+) create mode 100644 "03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/css/index.css" create mode 100644 "03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/do.js" create mode 100644 "03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250\346\241\210\344\276\213.html" create mode 100644 "03\346\236\227\345\261\225/20231124/\346\234\254\345\234\260\345\255\230\345\202\250localStorage,\345\273\266\350\277\237\345\207\275\346\225\260,\346\265\217\350\247\210\345\231\250\345\217\202\346\225\260.md" diff --git "a/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/css/index.css" "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/css/index.css" new file mode 100644 index 0000000..cd74974 --- /dev/null +++ "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/css/index.css" @@ -0,0 +1,71 @@ +* { + margin: 0; + padding: 0; +} + +a { + text-decoration: none; + color:#721c24; +} +h1 { + text-align: center; + color:#333; + margin: 20px 0; + +} +table { + margin:0 auto; + width: 800px; + border-collapse: collapse; + color:#004085; +} +th { + padding: 10px; + background: #cfe5ff; + + font-size: 20px; + font-weight: 400; +} +td,th { + border:1px solid #b8daff; +} +td { + padding:10px; + color:#666; + text-align: center; + font-size: 16px; +} +tbody tr { + background: #fff; +} +tbody tr:hover { + background: #e1ecf8; +} +.info { + width: 900px; + margin: 50px auto; + text-align: center; +} +.info input, .info select { + width: 80px; + height: 27px; + outline: none; + border-radius: 5px; + border:1px solid #b8daff; + padding-left: 5px; + box-sizing: border-box; + margin-right: 15px; +} +.info button { + width: 60px; + height: 27px; + background-color: #004085; + outline: none; + border: 0; + color: #fff; + cursor: pointer; + border-radius: 5px; +} +.info .age { + width: 50px; +} \ No newline at end of file diff --git "a/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/do.js" "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/do.js" new file mode 100644 index 0000000..a38b934 --- /dev/null +++ "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/do.js" @@ -0,0 +1,60 @@ +let i = localStorage.getItem(`a`) || 1;//键值对的键 +let tbody = document.querySelector(`tbody`);//下面的表格 +let uname = document.querySelector(`.uname`);//名字 +let age = document.querySelector(`.age`);//姓名 +let gender = document.querySelector(`.gender`);//性别 +let salary = document.querySelector(`.salary`);//工资 +let city = document.querySelector(`.city`);//城市 +let btn = document.querySelector(`.add`);//按钮 +//按钮的点击事件 +btn.addEventListener(`click`, function (e) { + e.preventDefault(); + if (uname.value == `` || age.value == `` || salary.value == ``) { + alert(`没有填完哦`); + } else { + //键值对的值 + let man = JSON.stringify({ + id: i, + uname: uname.value, + age: age.value, + gender: gender.value, + salary: salary.value, + city: city.value + }) + document.querySelector(`form`).reset(); + localStorage.setItem(`${i++}`, `${man}`); + xr(); + localStorage.setItem(`a`, `${i}`) + } +}) +//表格渲染 +//调整把列表数据从自动添加变为由数组添加 +function xr() { + tbody.innerHTML = ``; + for (let index = 0; index < i; index++) { + let man = JSON.parse(localStorage.getItem(`${index}`)) + if (man == null) { continue; } + else if (man != null) { + let table = document.createElement(`tr`); + table.innerHTML = + `${man.id} + ${man.uname} + ${man.age} + ${man.gender} + ${man.salary} + ${man.city} + + 删除 + ` + tbody.appendChild(table); + } + } +} +//获取表单对象当点击时如果时a标签则删 +tbody.addEventListener(`click`, function (e) { + if (e.target.tagName === `A`) { + localStorage.removeItem(`${e.target.dataset.id}`) + xr(); + } +}) +xr(); \ No newline at end of file diff --git "a/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250\346\241\210\344\276\213.html" "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250\346\241\210\344\276\213.html" new file mode 100644 index 0000000..89b2d0c --- /dev/null +++ "b/03\346\236\227\345\261\225/20231124/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250/\345\255\246\347\224\237\344\277\241\346\201\257\350\241\250\346\241\210\344\276\213.html" @@ -0,0 +1,54 @@ + + + + + + + + 学生信息管理 + + + + +

新增学员

+
+ 姓名: + 年龄: + 性别: + + 薪资: + 就业城市: + +
+

就业榜

+ + + + + + + + + + + + + + + + + +
学号姓名年龄性别薪资就业城市操作
+ + + + \ No newline at end of file diff --git "a/03\346\236\227\345\261\225/20231124/\346\234\254\345\234\260\345\255\230\345\202\250localStorage,\345\273\266\350\277\237\345\207\275\346\225\260,\346\265\217\350\247\210\345\231\250\345\217\202\346\225\260.md" "b/03\346\236\227\345\261\225/20231124/\346\234\254\345\234\260\345\255\230\345\202\250localStorage,\345\273\266\350\277\237\345\207\275\346\225\260,\346\265\217\350\247\210\345\231\250\345\217\202\346\225\260.md" new file mode 100644 index 0000000..0054a98 --- /dev/null +++ "b/03\346\236\227\345\261\225/20231124/\346\234\254\345\234\260\345\255\230\345\202\250localStorage,\345\273\266\350\277\237\345\207\275\346\225\260,\346\265\217\350\247\210\345\231\250\345\217\202\346\225\260.md" @@ -0,0 +1,137 @@ +# 笔记 + +小知识:表单里面的按钮具有submit的作用 + +### localStorage + +> `localStorage`是JavaScript中的一个Web Storage API,用于在浏览器中存储和访问数据。它是一个简单的键值存储系统,可以存储字符串类型的数据。 +> +> 通过使用`localStorage`,您可以在浏览器中存储数据,并在页面重新加载时保留这些数据。这对于存储用户偏好设置、表单数据、购物车内容等非敏感信息非常有用。 +> +> 在这个API里面存储的数据均为键值对,用自定义的键来为存储的值标明,可以查长度,遍历只能用foreach遍历 +> +> +> +> #### 方法(增删改查) +> +> 存储/修改数据 `setItem(键,值)` 可以直接覆盖 +> +> 获取数据 `getItem(键)` +> +> 删除数据 `removeItem(键)` +> +> 清空所有数据 `clear()` +> +> +> +> **注意** +> +> 在localStorage里存储的不管是键还是值都是字符串,也只能存储字符串,存储复杂类型要用`json`里面的方法 +> +> +> +> #### `json` +> +> JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,通常用于通过网络传输数据。它基于JavaScript语法,但是可以被多种编程语言解析和生成。JSON格式的数据可以用于存储、传输和表示结构化数据。 +> +> 在目前暂时不需要了解太多,如果要把复杂类型存储到localStorage则需要转换成`json字符串` +> +> - `JSON.stringify`方法用于将JavaScript对象转换为JSON格式的字符串。(转换) +> +> - `JSON.parse`方法用于将JSON格式的字符串转换回JavaScript对象。(还原) +> +> +> +> #### 存储流程 +> +> 总体的流程可以概括为 +> +> 对象 通过`json`转字符串(`stringify`) 传入 localStorage +> +> localStorage 通过`json`转字符串(`parse`) 转换 对象 +> +> #### 工具 +> +> 在浏览器中可以通过F12的application查看(中文时找应用程序) + +### 间歇函数(`setTimeout`) + +> `setTimeout`是JavaScript中的一个内置函数,用于在一定时间延迟后执行指定的函数或一段代码。 +> +> ```js +> setTimeout(function, delay, arg1, arg2, ...); +> +> function:要执行的函数或要执行的代码块。 +> delay:延迟的毫秒数,表示多久后执行函数或代码块。 +> arg1, arg2, ...(可选):传递给函数的参数。可以有多个参数。 +> ``` +> +> 和间隔函数的区别在与,这个只跑一次,而间隔函数可以根据定的事件重复跑 +> +> #### `clearTimeout(函数)`清除间歇函数 +> +> 意如其名,可以将间歇函数清除,而且可以在间歇函数被定义时直接清除 + +### local (页面的URL信息) + +> `location`是JavaScript中的内置对象,用于获取和操作当前页面的URL信息。 +> +> 通过`location`对象,我们可以获取或修改以下与URL相关的信息: +> +> - `location.href`:获取或设置完整的URL(包括协议、域名、路径和查询参数)。可以给这个赋予网址来直接跳转页面。 +> - `location.host`:获取或设置主机名和端口号。 +> - `location.hostname`:获取或设置主机名。 +> - `location.protocol`:获取或设置协议。 +> - `location.pathname`:获取或设置路径部分。 +> - `location.search`:获取或设置查询参数部分(以`?`开头)。 +> - `location.hash`:获取或设置URL中的片段标识符(以`#`开头)。 +> - `location.reload()`:重新加载当前页面。 +> - `location.replace(url)`:将当前页面替换为指定的URL。 + +### navigator(浏览器的信息) + +> `navigator`是JavaScript中的一个全局变量,表示当前浏览器的信息。通过`navigator`对象,可以获取到关于浏览器的各种信息,例如浏览器名称、版本、语言设置等。 +> +> 常见的`navigator`属性: +> +> - `navigator.userAgent`: 返回包含浏览器厂商和版本信息的字符串。 +> - `navigator.vendor`: 返回浏览器厂商名称。 +> - `navigator.platform`: 返回浏览器运行的操作系统平台。 +> - `navigator.language`: 返回浏览器语言设置,通常是ISO 639-1代码。 +> - `navigator.onLine`: 返回一个布尔值,表示浏览器是否连接到互联网。 +> +> 以下是一些常见的`navigator`方法: +> +> - `navigator.geolocation.getCurrentPosition()`: 获取设备的地理位置信息。 +> - `navigator.permissions.query()`: 查询用户是否对某个API或功能有权限访问。 +> - `navigator.mediaDevices.getUserMedia()`: 请求用户授权访问媒体设备(例如摄像头或麦克风)。 + +### history(浏览器历史记录) + +> `history`是JavaScript中的一个全局对象,它提供了在浏览器历史记录中前进或后退的功能。通过`history`对象,可以访问当前浏览器窗口的所有历史记录,并且可以在不刷新页面的情况下修改URL。 +> +> 常见的`history`属性和方法: +> +> - `history.length`: 返回当前浏览器历史记录的长度(即浏览器已经访问过的页面数量)。 +> +> - `history.back()`: 在浏览器历史记录中后退一页。 +> +> - `history.forward()`: 在浏览器历史记录中前进一页。 +> +> - `history.go(n)`: 在浏览器历史记录中移动n个页面,为正数时前进n, 为负数时后退n。 +> +> +> +> - `history.pushState(stateObj, title, url)`: 向浏览器历史记录栈中添加一个新的状态,并且更新当前URL。其中,`stateObj`是一个JavaScript对象,表示新状态的数据;`title`是新页面的标题;`url`是新页面的URL。 +> +> - `history.replaceState(stateObj, title, url)`: 与`pushState()`方法类似,但是不会向浏览器历史记录栈中添加一个新状态,而是替换当前状态。 + +### 网址中的?和# + +> 问号(?)用于表示查询字符串的开始,用于向服务器传递参数或在前端进行处理。查询字符串是一系列键值对的集合,键和值之间用等号(=)连接,不同的键值对之间用与号(&)连接。 +> +> 井号(#)用于表示片段标识符(fragment identifier),用于定位文档中的具体位置或指定特定的片段。片段标识符通常用于跳转到页面内部的锚点链接。 +> +> 当浏览器加载网页时,问号后面的查询字符串部分通常会被发送给服务器,以便服务器可以根据这些参数执行相应的操作。而片段标识符部分仅用于在页面中定位特定的位置。 +> +> 在前端开发中,可以使用JavaScript来获取和操作URL中的查询字符串和片段标识符。可以使用`location.search`来获取查询字符串部分(?),使用`location.hash`来获取片段标识符部分(#)。 \ No newline at end of file -- Gitee