From ca8c42909a92ce09f8a2db64e7d0a6b3b068613b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E5=91=A8=E9=A3=98?= <2422417047@qq.com>
Date: Wed, 30 Nov 2022 21:41:56 +0800
Subject: [PATCH] =?UTF-8?q?=E7=AC=94=E8=AE=B0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
...\350\257\221\357\274\210AO\357\274\211.md" | 2 +-
...12\202\350\257\276 -jQuery\344\270\213.md" | 14 +-
...257\276-jQuery\346\226\271\346\263\225.md" | 111 ++++++++++++++
...5\205\253\350\212\202\350\257\276-Ajax.md" | 101 +++++++++++++
...\347\224\237ajax\344\270\216jQueryAjax.md" | 143 ++++++++++++++++++
5 files changed, 368 insertions(+), 3 deletions(-)
create mode 100644 "40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.28 \347\254\254\344\272\214\345\215\201\344\270\203\350\212\202\350\257\276-jQuery\346\226\271\346\263\225.md"
create mode 100644 "40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.29 \347\254\254\344\272\214\345\215\201\345\205\253\350\212\202\350\257\276-Ajax.md"
create mode 100644 "40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.30 \347\254\254\344\272\214\345\215\201\344\271\235\350\212\202\350\257\276-\345\216\237\347\224\237ajax\344\270\216jQueryAjax.md"
diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.10.19 \347\254\254\344\270\203\350\212\202\350\257\276-\345\207\275\346\225\260\350\277\233\351\230\266\344\270\216\351\242\204\347\274\226\350\257\221\357\274\210AO\357\274\211.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.10.19 \347\254\254\344\270\203\350\212\202\350\257\276-\345\207\275\346\225\260\350\277\233\351\230\266\344\270\216\351\242\204\347\274\226\350\257\221\357\274\210AO\357\274\211.md"
index 20a72d9..3a099e6 100644
--- "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.10.19 \347\254\254\344\270\203\350\212\202\350\257\276-\345\207\275\346\225\260\350\277\233\351\230\266\344\270\216\351\242\204\347\274\226\350\257\221\357\274\210AO\357\274\211.md"
+++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.10.19 \347\254\254\344\270\203\350\212\202\350\257\276-\345\207\275\346\225\260\350\277\233\351\230\266\344\270\216\351\242\204\347\274\226\350\257\221\357\274\210AO\357\274\211.md"
@@ -57,7 +57,7 @@ sum(1,2,3,4,5,6,7,8,9)
console.log(arr);//会改变原数组
```
-##### 3,Math.max --返回一个数组中最大的值
+##### 3,Math.max.apply --返回一个数组中最大的值
```js
const arr = [1,2,3,4,5,6,7,8]
diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.24 \347\254\254\344\272\214\345\215\201\345\205\255\350\212\202\350\257\276 -jQuery\344\270\213.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.24 \347\254\254\344\272\214\345\215\201\345\205\255\350\212\202\350\257\276 -jQuery\344\270\213.md"
index 152aa60..e0af8b7 100644
--- "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.24 \347\254\254\344\272\214\345\215\201\345\205\255\350\212\202\350\257\276 -jQuery\344\270\213.md"
+++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.24 \347\254\254\344\272\214\345\215\201\345\205\255\350\212\202\350\257\276 -jQuery\344\270\213.md"
@@ -2,7 +2,7 @@
#### 1、绑定
-##### 1.1 、bind函数
+##### 1.1 、==bind==函数
```
$('选择器').bind({"事件名称":匿名函数})
@@ -17,7 +17,7 @@ $('选择器').bind({"事件名称":匿名函数})
```
-##### 1.2 、on函数
+##### 1.2 、==on==函数
两个形参
@@ -50,6 +50,16 @@ $(“父节点选择器”).on(“事件名称”,“孩子节点,即要绑定
```
+##### 1.3 delegate()
+
+```js
+$('.parent').delegate('a', 'click', function () {
+ console.log('click event on tag a');
+})
+```
+
+
+
#### 2、解绑函数
##### 2.1、off()
diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.28 \347\254\254\344\272\214\345\215\201\344\270\203\350\212\202\350\257\276-jQuery\346\226\271\346\263\225.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.28 \347\254\254\344\272\214\345\215\201\344\270\203\350\212\202\350\257\276-jQuery\346\226\271\346\263\225.md"
new file mode 100644
index 0000000..aadadd8
--- /dev/null
+++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.28 \347\254\254\344\272\214\345\215\201\344\270\203\350\212\202\350\257\276-jQuery\346\226\271\346\263\225.md"
@@ -0,0 +1,111 @@
+### 一,过滤方法
+
+| 过滤器名 | jQuery语法 | 说明 | 返回值 |
+| -------------- | ---------------------- | -------------------------- | -------- |
+| :first | $('li:first') | 选取第一个元素 | 单个元素 |
+| :last | $('li:last') | 选取最后一个元素 | 单个元素 |
+| ==:not== | $('li:not(.red)') | 选取class不是red的li的元素 | 集合元 |
+| :even | $('li:even') | 选取索引是偶数的所有元素 | 集合元素 |
+| ==:eq(index)== | $('li:eq(下标)') | 选取索引等于index的元素 | 单个元素 |
+| ==is()== | $('li').is('.red') | 传递选择器 | 集合元素 |
+| ==filter()== | $('li').filter('.red') | 选取符合条件的元素 | 集合元素 |
+
+#### 1,选择器过滤: ==filter()==;使用选择器来选取符合条件的元素
+
+```js
+$().filter(selector or fn)
+```
+
+#### 2,子代元素过滤:==has()==;运行速度快
+
+```
+$().has(selector)
+```
+
+#### 3,类名过滤: ==hasClass()==;根据元素的class来过滤
+
+* 用于判断元素是否包含指定的类名:返回TRUE或FALSE
+
+```html
+$().hasClass(“类名”)
+```
+
+#### 4,下标过滤: ==eq()==;根据元素集合的下标来过滤
+
+* 下标从0开始,正数表示正数下标第几个元素,负数表示倒数第几个元素
+
+```js
+$().eq(n)
+```
+
+#### 5,判断过滤: ==is()==;根据某些条件进行判断,然后选取符合条件的元素,返回TRUE或FALSE
+
+```
+$().is(selector)
+```
+
+```js
+//判断元素是否可见
+$().is(":visible")
+//判断元素是否处于动画中
+$().is(":animated")
+//判断单选框或复选框是否被选中
+$().is(":checked")
+//判断当前元素是否第一个子元素
+$(this).is(":first-child")
+//判断文本中是否包含jQuery这个词
+$().is(":contains('jQuery')")
+//判断是否包含某些类名
+$().is(".select")
+```
+
+#### 6,反向过滤: ==not()==;过滤“不符合条件”的元素,返回余下符合条件的元素
+
+```
+$().not(selector或fn)
+```
+
+
+
+
+
+### 二、遍历元素(each())
+
+```js
+$('li').each(function(index, element){ …… })
+```
+
+- each()方法接收一个匿名函数作为参数,该函数有两个参数:index,element。
+
+- index是一个可选参数,它表示元素的索引号(即下标)。通过形参index以及配合this关键字
+
+- element是一个可选参数,它表示当前元素,可以使用(this)代替。也就是说,(element)等价于 $(this)
+
+
+
+### 三、事件委托
+
+```js
+//target:源对象
+//currenttarget:当前调用该事件的对象
+//delegatetarget:委托对象
+ $('ul').click(
+ function (event) {
+ var e = event || window.event;
+ console.log(this==e.currentTarget);
+ }
+ )
+```
+
+
+
+### 四、阻止默认行为(event)
+
+```js
+ $('a').click(
+ function (event) {
+ var e = event || window.event;
+ e.preventDefault();
+ }
+ )
+```
diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.29 \347\254\254\344\272\214\345\215\201\345\205\253\350\212\202\350\257\276-Ajax.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.29 \347\254\254\344\272\214\345\215\201\345\205\253\350\212\202\350\257\276-Ajax.md"
new file mode 100644
index 0000000..c0c8d39
--- /dev/null
+++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.29 \347\254\254\344\272\214\345\215\201\345\205\253\350\212\202\350\257\276-Ajax.md"
@@ -0,0 +1,101 @@
+### 一,Ajax
+
+#### 1,概念与特点;
+
+* 一种创建交互式网页应用的网页开发技术,用于浏览器和服务器之间进行数据交互
+* 使用脚本操纵HTTP和Web服务器进行数据交换,不会导致页面重载
+
+#### 2. AJAX 的优缺点
+
+- 不需要插件的⽀持,原⽣ js 就可以使用
+- 用户体验好(不需要刷新页面就可以更新数据)
+- 减轻服务端和带宽的负担
+- 缺点:搜索引擎的支持度不够
+
+
+
+### 二,http
+
+#### 1,简述
+
+* 超文本传输协议(HyperText Transfer Protocol)规定了Web浏览器如何从Web服务器获取文档和向Web服务器提交表单内容,以及Web服务器如何响应这些请求和提交
+
+#### 2,属性
+
+##### (1) responseText:作为响应体返回的文本
+
+##### (2) responseXML:如果响应的内容类型是"text/xml"或"application/xml",那就是包含响应数据的 XML DOM 文档
+
+##### (3) status:响应的 HTTP 状态
+
+##### (4) statusText:响应的 HTTP 状态描述
+
+##### (5) readyState:返回HTTP请求状态
+
+* 0 open()尚未调用 UNSENT
+* 1 open()已调用 OPENED
+* 2 接收到头信息 HEADERS_RECEIVED
+* 3 接收到响应主体 LOADING
+* 4 响应完成 DONE,所有的浏览器都触发该事件
+
+##### (6) readystatechange 请求状态改变事件
+
+
+
+#### 3,http请求
+
+##### (1)创建对象;XMLHttpRequest()
+
+##### (2)请求设置;open("GET","路径",true)
+
+##### (3)发送请求;send()
+
+```js
+var newAj=new XMLHttpRequest();
+ newAj.open("GET","json练习.json",true);
+ newAj.send();
+ newAj.onreadystatechange=function(){
+ if (newAj.readyState==4) {
+ if (newAj.status==200) {
+ var obj=JSON.parse(newAj.responseText);
+ console.log(obj);
+ }
+ }
+ }
+```
+
+
+
+
+
+### 三,JSON与对象之间的转换
+
+#### 1,JSON.stringify(obj):将对象转成json数据格式
+
+#### 2,JSON.parse(json):将json转成对象
+
+```js
+
+```
+
+#### 3,遍历 for in
+
+```js
+
+```
\ No newline at end of file
diff --git "a/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.30 \347\254\254\344\272\214\345\215\201\344\271\235\350\212\202\350\257\276-\345\216\237\347\224\237ajax\344\270\216jQueryAjax.md" "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.30 \347\254\254\344\272\214\345\215\201\344\271\235\350\212\202\350\257\276-\345\216\237\347\224\237ajax\344\270\216jQueryAjax.md"
new file mode 100644
index 0000000..e4654ee
--- /dev/null
+++ "b/40\345\221\250\351\243\230/\347\254\224\350\256\260/2022.11.30 \347\254\254\344\272\214\345\215\201\344\271\235\350\212\202\350\257\276-\345\216\237\347\224\237ajax\344\270\216jQueryAjax.md"
@@ -0,0 +1,143 @@
+### 一,原生AJAX
+
+#### 1,GET方法;传送数据量小,处理效率高,安全性低,会被缓存
+
+* send()中不需要添加任何参数,因为在连接服务器的时候就已经发送
+* get请求就不必要设置 xhr.setRequestHeader(header,value)
+
+```js
+var newAj=new XMLHttpRequest();
+ newAj.open("GET","json练习.json",true);
+ newAj.send();
+ newAj.onreadystatechange=function(){
+ if (newAj.readyState==4) {
+ if (newAj.status==200) {
+ var obj=JSON.parse(newAj.responseText);
+ console.log(obj);
+ }
+ }
+ }
+```
+
+#### 2,post方法;传送数据量大,处理效率低,安全性高,不会被缓存
+
+* send()中需要添加参数,建议设置请求头
+* 参数可以是null或者xhr.send()|send(带有参数的)post请求在传递值的情况下必须 设置 xhr.setRequestHeader(header,value)
+
+```js
+ var xhr = new XMLHttpRequest();
+ xhr.open('post', 'data.json', true);
+ xhr.send({ a: 100, b: 200 });
+ //设置行头
+ xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
+ xhr.onreadystatechange = function () {
+ if (xhr.readyState == 4 && xhr.status == 200) {
+ console.log(xhr.response['No1']);
+ // 手动转成对象
+ // var obj = JSON.parse(xhr.response);
+ }
+ }
+```
+
+
+
+#### 3.响应数据处理;将返回的json类型的数据转换成对象
+
+##### 1,手动转换
+
+```js
+var obj = JSON.parse(xhr.response)
+console.log(obj.name)
+```
+
+##### 2,自动转换
+
+```js
+//创建对象后设置:
+xhr.responseType = 'json';
+console.log(xhr.response.name)
+```
+
+
+
+
+
+### 二,jQuery Ajax
+
+#### 1,$.get();执行get请求方式的ajax
+
+```js
+ $('button').eq(0).click(
+ function () {
+ $.get('data.json',{a:100,b:200},function (data) {
+ console.log(data);
+ },'json');
+ }
+ )
+```
+
+
+
+#### 2,$.post();执行post请求方式的ajax
+
+```js
+ $('button').eq(1).click(
+ function () {
+ $.post('data.json',{a:100,b:200},function (data) {
+ console.log(data);
+ },'json');
+ }
+ )
+```
+
+
+
+#### 3,$.getJSON()
+
+* 通过Ajax获取服务器中JSON格式的数据
+* “全局方法”,直接定义在jQuery对象(即“$”)下的方法
+
+```js
+ $('button').eq(2).click(
+ function () {
+ $.getJSON('data.json',function (data) {
+ console.log(data);
+ })
+ }
+ )
+```
+
+
+
+#### 4,$.getScript();动态加载JavaScript的方法
+
+* 通过AJAX来获取并运行一个外部JavaScript文件
+* 异步跨域加载JavaScript文件,可避免提前加载JavaScript文件
+* 减少服务器和客户端的负 担,加快页面加载速度
+
+```js
+ $('button').eq(3).click(
+ function () {
+ $.getScript('test.js');
+ }
+ )
+```
+
+#### 5,$.ajax();核心方法,所有的其他方法都是在内部使用此方法
+
+* 以上方法用ajax()都能实现
+
+```js
+ $('button').eq(4).click(
+ function () {
+ $.ajax({
+ url:'data.json',
+ type:'get',
+ data:{a:100,b:200},
+ success:(data) => console.log(data),
+ error:()=> console.log('请求失败')
+ })
+ }
+ )
+```
+
--
Gitee