[TOC]
# JQuery认识
## 1.入口函数
执行时机是在文档(标签)加载完毕后立马执行函数里面的代码 ,不存在覆盖问题(调用函数)
**跟window.onload的执行时机不一样(页面所有资源加载完毕后执行)后写的入口函数会覆盖前面写的函数**
**完整写法**
$(document).ready(function){
代码块;
}
**简写**
第一种:
$().ready(function){
代码块;
}
第二种:
$(function(){ 代码块; } )
*****
**所有的$都可以用jQuery代替**
*****
&("#id") JQ对象(默认情况下不能调用原生的属性和方法)
document.getElementById("box") DOM对象(默认情况下只能调用原生的JS属性和方法)
###1.0 转换对象
#### 1.0.1 **JQ对象转换为DOM对象**
$("#box")[0].style.backgroundColor = "red";
$("#box").get(0).style.backgroundColor = "red";
**ps: $("#box")得到的是个数组**
*****
#### 1.0.2 **DOM对象转为JQ对象**
var divObj = document.getElementById("box);
$(divObj).show();
### 1.1.格式举例
```
$(function(){
$("button:eq(0)").click(function(){
$("div").show(400);
});
})
```
### JQuery函数
**html():**
访问html,显示标签 ,修改值时会对标签起作用
**text():**
访问text,只打印文字内容 ,修改值时会直接把标签当初是文本内容修改
![](https://img.kancloud.cn/d9/79/d979f6b80cf5af63db973c7c01ba11cc_1040x587.png)
##2选择器
### 2.1基本选择器
**分类:**
ID选择器、类选择器、标签选择器、并集选择器和通配符选择器。
![](https://img.kancloud.cn/ba/ed/baed944861fb5a024ed7667ee4891d9e_679x468.png)
```
~~~
<button>选择所有段落标签</button>
<button>选择class为left的标签</button>
<button>选择id为box的标签</button>
<button>选择所有不分类型标签</button>
<button>选择所有标题标签</button>
<button>选择ul里面的li标签</button>
<button>选择body下的第一级所有标签并添加边框</button>
<button>选择p后的一个div</button>
<button>选择p后的所有div</button>
<p>段落标签</p>
<p>段落标签</p>
<p>段落标签</p>
<div class="left">类选择器</div>
<div class="left">类选择器</div>
<div id="box">id选择器</div>
<h1>标题1标签</h1>
<h2>标题2标签</h2>
<h3>标题3标签</h3>
<ul>
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
</ul>
<ol>
<li>列表项</li>
<li>列表项</li>
<li>列表项</li>
</ol>
~~~
$("button:eq(0)").click(function () {/*所有的p标签*/
$("p").css("background-color", "red");
});
$("button:eq(1)").click(function () {/*class类名为left*/
$(".left").css("background-color","red");
});
$("button:eq(2)").click(function () {/*id名为id*/
$("#box").css("background-color","pink");
});
$("button:eq(3)").click(function () {
$("*").css("background-color","pink");/*所有不分标签类型的标签 通配符 所有包括body*/
});
~~~
```
### 2.2.层级选择器
**分类**
后代选择器 、 直接后代选择器 、 下一个相邻兄弟和后面所有兄弟元素
![](https://img.kancloud.cn/62/8e/628e4ff4f5126a607ccd3efbae9902ad_672x392.png)
```
~~~
$("button:eq(5)").click(function () { /*后代选择器*/
$("ul li").css("background-color","red");
});
$("button:eq(6)").click(function () {/*选择body下的第一级所有标签并添加边框 直接后代选择器*/
$("body>*").css("border","1px solid red");
});
$("button:eq(7)").click(function () {/*p后的第一个div 中间不能有别的标签隔开.否则会未选择到任何标签 下一个相邻的兄弟*/
$("p+div").css("border","1px solid red");
});
$("button:eq(8)").click(function () { /*后面所有的兄弟*/
$("p~div").css("border","1px solid red");/*p后所有的div。如果中间有别的标签也可以获取到后面所有的div*/
~~~
```
**拓展选择方法:**
在通过$(" ")选择到元素后,可以通过:
prev() 获取上一个相邻兄弟
prevAll() 获取 前面所有兄弟
next() 获取下一个相邻兄弟
nextAll() 获取后面所有兄弟
### 2.3基本筛选选择器
eq后的值是指确定的值
![](https://img.kancloud.cn/65/f7/65f707debba91d44fd559d92bfb1482a_681x557.png)
```
~~~
$(function () {
$("button:eq(0)").click(function () {
$("li:first").css("background-color","pink");
});
$("button:eq(1)").click(function () {
$("li:last").css("background-color","pink");
});
$("button:eq(2)").click(function () {/*选择所有的排除最后一个*/
$("li:not(:last)").css("background-color","pink");
});
$ ("button:eq(3)").click(function () {
$("li:not(:eq(1))").css("background-color","pink");/*选择所有排除第二个*/
});
$("button:eq(4)").click(function () {
$("li:even").css("background-color","pink");/*索引值为偶数的*/
});
$("button:eq(5)").click(function () {
$("li:odd").css("background-color","pink");/*索引值为奇数*/
});
$("button:eq(6)").click(function () {
$("li:gt(4)").css("background-color","pink");/*大于5的li >>*/
});
$("button:eq(7)").click(function () {
$("li:lt(4)").css("background-color","pink");/*小于5的li <<*/
});
$("button:eq(8)").click(function () {
$("li:eq(4)").css("background-color","pink");/*等于5的li*/
});
~~~
```
### 2.4内容筛选选择器
根据元素中的文字内容或所包含的子元素特征获取元素 (可模糊匹配)
![](https://img.kancloud.cn/da/29/da2965b6ead078bdd7a238fa03d0c99e_681x265.png)
```
~~~
$(function () {
$("button:eq(0)").click(function () {
$("div:contains('天')").css("background-color","red");/*带有天字的*/
});
$("button:eq(1)").click(function () {
$("div:empty").css("background-color","pink");/*空的标签*/
});
$("button:eq(2)").click(function () {
$("div:parent").css("background-color","red");/*选择含有子元素或者是文本的div元素*/
});
$("button:eq(3)").click(function () {
$("div:has('span')").css("background-color","red");/*带有span标签的元素*/
});
})
~~~
```
### 2.5 属性筛选选择器
根据元素的某个属性获取元素,在使用的时候我们可以匹配单个属性也可以进行多个属性的匹配。
![](https://img.kancloud.cn/f5/ec/f5eca15e0a63aee84a1c3e032c45d1ca_681x404.png)
### 2.6父子兄选择器
**分类**
parent() 获取当前标签的父节点
parents() 获取当前标签的祖先节点
parentsUntil() 获取当前标签的祖先节点直到… (不包含该标签)
children() 获取当前标签的子节点
siblings() 获取当前标签的兄弟节点
```
~~~
<button>点击选中</button>
<div class="one">
<div class="box">
<div class="box-in">我是父亲
<span class="active">我是孙子</span>
</div>
</div>
</div>
~~~
<script>
$("button:eq(0)").click(function () {
// $(".active").parent().css("background-color","blue");/*父亲*/
/*parents()里面不写值会默认把所有的祖先都改变 可指定祖先*/
// $(".active").parents().css("background-color","blue");
// $(".active").parents(".box").css("background-color","blue");/*会包括指定的祖先*/
$(".active").parentsUntil(".one").css("background-color","blue");
/*一级一级祖先往上找,知道找到指定标签为止(不包含指定标签)*/
$(".active").siblings().css("background-color","black");/*兄弟节点*/
})
</script>
~~~
```
##3.事件
click() 点击事件
noConflict() 转换 把$转换为jq (解决命名冲突)
mouseenter() 鼠标 经过事件
mouseleave() 鼠标离开事件
hover() 如果同时出现上面两个时间可以用hover代替 两个参数(函数)
*****
**鼠标经过离开事件例子 四种写法**
```
~~~
// 第一种
$(".nav>ul>li").mouseenter(function () {
$(this).children("ul").show();//事件源的ul孩子
});
$(".nav>ul>li").mouseleave(function () {
$(this).children("ul").hide();
});
//第二种
$(".nav>ul>li").mouseenter(function () {
$(this).children("ul").show();
}).mouseleave(function () {
$(this).children("ul").hide();
});
// 第三种
$(".nav>ul>li").hover(function () {/*两个参数 分别是两个函数*/
$(this).children("ul").show();
},function () {
$(this).children("ul").hide();
})
//第四种
$(".nav>ul>li").hover(function () {/*鼠标的离开和进入可以当做是显示隐藏的切换效果*/
$(this).children("ul").toggle();
});
```
- Javascript
- 组成
- Web API
- 初步认识DOM
- 经典案例 (使用获取id的方法)
- 节点和元素
- 经典案例 (使用获取节点和元素的方法)
- 函数
- 作用域链
- Array对象的方法
- String对象的方法
- 绑定事件
- 事件委托
- 逻辑运算
- js高级(面向对象、)
- 基本知识
- 数据类型
- 基本包装类型的使用
- 定义变量的区别
- JavaScript对象的动态特性
- 关键字in
- 关键字delete
- 运算符
- 创建对象的方式
- 回调函数
- 高阶函数
- 构造器属性
- this指向
- hasOwnProperty属性
- 私有成员和特权方法
- 面向对象和面向过程的基础
- 异常捕获
- 构造函数和普通函数的区别
- 构造函数的补充
- 原型
- 原型图
- 获取原型对象的方法
- 原型对象的访问和设置
- 判断某个对象是否是指定实例对象的原型对象
- constructor
- isPrototypeOf
- instanceof
- 检测对象是公有还是私有
- 核心概念
- 继承
- 混入式继承
- 原型式继承
- 原型链继承
- 借用构造函数继承(call继承,经典继承)
- 组合式继承(推荐)
- class继承
- __ proto __属性
- call方法和apply方法
- Fuction相关知识
- 创建函数的方式
- eval函数
- 浅拷贝和深拷贝
- 浅拷贝
- 深拷贝
- Object相关知识
- Object原型属性和方法
- Object静态成员对象
- 案例
- 数组去重
- 闭包
- 语法
- DOM事件和闭包
- 定时器和闭包
- 即使对象初始化
- 闭包的变形
- 设计模式
- 单例模式
- 发布订阅模式(观察者模式)
- 工厂模式
- 命名空间模式
- 同步和异步
- 垃圾回收机制
- get和set
- JQuery
- 动画方法
- 事件
- 方法
- 节点
- 方法er
- HTML + CSS
- 经验
- flex布局
- px,em ,rem区别
- 清除浮动
- Less
- UI框架
- 一.Bootstrap框架
- 常用类名
- 二 .Animate.css
- 三.WOW.JS
- 四.scrollReveal.js
- 五.zepto框架
- zepto选择器
- 滑动事件
- tap触摸事件
- zepto动画
- 六,swipe框架
- 分页器
- 左右按钮和循环轮播
- 底部滚动和轮播方向
- 自动播放和切换效果
- 移入移除事件
- swipe结合animate.css
- 总结
- 滚滚屏
- 自动化构建工具
- 1.gulp
- 使用gulp编译less成css,并最终压缩css
- 压缩css
- 合并和压缩js
- 压缩图片
- 编写server服务
- 包管理器
- 介绍
- brew
- npm十全大补汤
- ES6
- class类
- class类的使用
- class类的继承结构
- let 和const
- 结构语法
- 模板字符串
- 化简写法
- 形参的默认值
- ...rest参数
- rest剩余参数
- 扩展参数
- 正则表达式
- 创建正则表达式的方式
- 构造函数
- 字面量的方式
- 其他(修饰符)
- 判断是否匹配成功
- 正则表达式案例
- 常见的匹配原则
- 验证密码长度
- 表单验证
- 正则提取
- 正则替换
- vue
- 插值操作
- Mustache语法
- 过滤器
- 绑定相关知识
- 绑定对象
- 单向绑定
- 双向绑定
- 绑定属性
- 动态绑定style
- 绑定事件
- 补充
- 绑定语法
- 基础
- vue介绍
- MVVM
- 计算属性
- 指令
- v-cloak
- 显示和隐藏
- 循环
- 自定义指令
- 本地缓存
- localStorage
- sessionStorage
- 对象劫持
- 组件
- 局部组件
- 父子组件
- 全局组件
- 组件访问实例数据
- 父传子
- 子传父
- 兄弟传兄弟
- 插槽
- methods,computed,watch的区别
- Vue.observable()
- vue.config.js配置
- 修饰符
- .sync修饰符
- $attrs和$listeners
- Node.js
- 使用Node执行js代码的两种方式
- 交互模式
- 解释js文件
- http模板
- request对象的使用
- express框架
- 安装
- post
- 获取请求参数
- post返回页面
- 重定向到别的接口
- get
- 返回页面
- get获取请求参数
- 请求静态资源
- 热重启
- Ajax
- 请求方式
- get请求
- post请求
- jQuery中的ajax方法
- JQuery中的get请求
- jQuery中的post请求
- 微信小程序
- 认识
- 引入样式的方式
- 绑定数据
- 小程序组件
- scroll - view 可滚动视图区域
- 发起请求
- template模板
- rich-text
- web-view
- open-data
- checkbox组件
- label组件
- radio组件
- picker组件
- swiper组件
- Git
- 跨域
- 左侧固定,右侧自适应
- vuex
- 如何解决vuex页面刷新数据丢失问题
- 数据结构
- 树
- 问题累积
- Axios
- 前端路由