一、jQuery概述
1.js库
即library,是一个封装好的特定的集合(函数,方法)
2.jQuery的概念 即一个js库
优点:轻量级/兼容性好 等等
二、jQuery基本使用
1,2下载 引用
<head>
<script src="jquery.js"></script>
</head>
3.jQuery的入口函数
$(function() {
$('div').hide();
})
4.jQuery的顶级对象$
相当于原生js的window 可通过$调用方法
5.jQuery对象和DOM对象
- DOM对象 原生js获取过来的对象 / jQuery对象 用
$('');获取 - jQuery对象本质是:利用$对DOM对象包装后产生的对象(伪数组形式存储) jQuery 对象只能使用jQuery方法,DOM 对象则使用原生的js 属性和方法
DOM对象与jQuery对象之间的相互转换
- DOM对象转换为jQuery对象:
$(DOM对象) - jQuery对象转换为DOM对象:
$('div')[index]/$('div').get(index)
jQuery常用API
一、jQuery选择器
-
$('选择器')
-
层级选择器: 子代选择器 > 等
-
jQuery隐式迭代(重要) ---- 对元素进行相同操作时
遍历内部DOM元素(伪数组形式存储) 的过程就叫做 隐式迭代
-
jQuery筛选选择器
$('li:first')获取第一个li元素$('li:last')获取最后一个li元素$('li:eq(index)')获取到的li元素中 选择元素 索引号从 0 开始$('li:odd')获取到的li元素中 ,索引号为 奇数的元素$('li:even')获取到的li元素中 , 索引号为 偶数的元素
- jQuery筛选方法(重点)
$('li').parent()查找父级 返回的是最近一级的父级元素 亲爸爸$('ul').children('li')相当于$('ul>li')最近一级 亲儿子$('ul').find('li')相当于$('ul li')后代选择器$('.first').siblings('li')查找兄弟节点,不包括自己本身$('.first').nextAll()查找当前元素之后所有的同辈元素$('.first').prevtAll()查找当前元素之前所有的同辈元素$('div').hasClass('protected')检查当前的元素是否含有某个特定的类 如果有返回 true$('li').eq(index)相当于$('li':eq(index)),index从0开始$(this) jQuery当前元素 this不加引号
-
jQuery里面的排他思想
应用隐式迭代
jQuery得到当前元素索引号 $(this).index()
二、jQuery样式操作
1.操作css方法
$(this).css('color')// 只写属性名,返回属性值$(this).css('color','red')$(this).css({ ... })//对象形式 如果是复合属性 必须采取驼峰命名法,如果值不是数字,则需要加引号 2.设置类样式方法- 添加类:
$('div').addClass('current') - 删除类:
$('div').removeClass('current') - 切换类:
$('div').toggleClass('current')
链式编程:
原因:因为很多jQuery方法直接返回 当前的jQuery对象,所以可以接着. 出方法;
- 不返回jQuery对象的方法:val(),html(),text(),attr(), 返回文本字符串;
- 返回新的jQuery对象的方法:next() nextAll() parent() children() prev() ...
- 剩下基本都是返回当前jQuery对象;
3.类操作与className区别
className会覆盖原先的类名 jQuery中 addClass不会,相当于追加类名
三、jQuery效果
1.显示隐藏
- show([speed],[easing],[fn])
- hide([speed],[easing],[fn])
- 切换:toggle(); 一般情况下里面不加参数 直接显示隐藏 2.滑动
- 下滑动 slideDown();
- 上滑动 slideUp()
- 切换滑动 slideToggle()
3.事件切换 hover([over],out) 参数为(经过事件,离开事件)
- 事件切换 hover 如果只写一个函数 那么鼠标经过和鼠标离开都会触发这个函数 4.动画队列及其停止排队方法
- 停止排队 stop() 需要写在动画的前面 5.淡入淡出
- 淡入 fadeIn();
- 淡出 fadeOut();
- fadeTo(speed,opacity); //修改透明度 speed opacity 速度(ms),透明度必须写 取值0~1
- 切换 fadeToggle(); 6.自定义动画 animate
语法 animate(params,[speed],[easing],[fn])
params:想要更改的样式属性,以对象形式传递,必须写。属性名可以不带引号,如果是复合属性则需要采取驼峰命名法。
animate返回顶部: //不能是文档 而是 html和body做动画
$("body,html").stop().animate({
scrollTop:0
})
四、jQuery属性操作
1.设置或获取元素固有属性值 prop()
- 获取属性语法
prop("属性") - 设置属性语法
prop("属性","属性值")2.设置或获取元素自定义属性 attr() - 获取属性语法
attr("属性")//类似原生getAttribute() - 设置属性语法
attr("属性","属性值")//类似原生setAttribute() - H5的自定义属性也可以得到
(data-...)3.数据缓存 data() 这个里面数据放在元素的内存里面 - 附加数据语法
data("name","value")//向被选元素附加数据 - 获取数据语法
date("name")//向被选元素获取数据 - 可以获取H5自定义属性
data-index得到数字型
:checked 可以获得被选中的个数 $(".j-checkbox:checked").length
五、jQuery内容文本值
- 普通元素内容html() 相当于原生innerHTML
- 普通元素文本内容 text() 相当于原生innerText
- 获取设置表单值 val() 相当于原生value 其它:
- 截取字符串 substr(1)
- parents();选择器 找出所有祖级元素
- praents("选择器");选择器 找出指定祖级元素
- 保留两位小数 .toFiexd(2);
六、jQuery元素操作
1.遍历元素
- 语法1:
$("div").each(function(index,demEle){})index是索引号,demEle是每个DOM元素对象,不是jQuery对象 (需要转换为jQuery对象 $(demEle)) - 语法2:
$.each($("div"),funciton(index,demEle{}))方法遍历元素 主要用于遍历数据(数组/对象) 处理数据$.each(arr / { name: " " , age: },funcition(i,ele){})
2.创建元素
$("<li></li>");
3.添加元素
- 内部添加:element.append(); //放到内容的最后面 《父子级》 element.prepend(); //放在内容的最前面
- 外部添加:element.after("内容") //把内容放在元素后面 《兄弟关系》 element.before("内容") //把内容放在元素前面
- 删除元素:
- element.remove(); //删除匹配的元素(本身)
- element.empty(); //删除匹配的元素集合中的所有子节点
- element.html("""") //清空匹配的元素内容
jQuery事件
一、jQuery事件注册
单个事件注册 : element.事件(function(){})
二、jQuery事件处理
1.事件处理on() 绑定事件
语法:element.on(events,[selector :元素的子元素选择器],fn)
事件委派:把原来给子元素身上的事件绑定在父元素身上
3.自动触发事件 trigger()
- 元素.事件()
- 元素.trigger("事件")
- 元素.triggerHandler("事件") 不会触发元素的默认行为
三、jQuery事件对象
- 阻止默认行为:
event.preventDefault()或者return false - 阻止冒泡:
event.stopPropagation()
jQuery 其它方法
一、jQuery拷贝对象
$.extend([deep],target,object1,[objectN])
- deep:true为深拷贝 默认false 浅拷贝
- target:要拷贝的对象
- object1:待拷贝到第一个对象的对象
- 浅拷贝是把复杂数据类型中的地址拷贝给目标对象,修改目标对象会影响被拷贝对象
- 深拷贝 完全克隆,所有的数据对象 ,不会覆盖,如果有不冲突的属性会合并在一块 二、多库共存
解决方案:
- 把$符号 统一改为 jquery
- jQuery变量规定新的名称:
$.noConflict()var xx=$.noConflict();三、jQuery插件 : jQuery之家
- 瀑布流插件
- 图片懒加载: 可视区域 显示图片 js写在dom元素的最后面
- 全屏滑动
- bootstrap插件
jQuery尺寸,位置操作
一、jQuery尺寸
- width()/height() //去的匹配元素宽度和高度 只算width/height
- innerWidth()/innerHeight() // 包含padding
- outerWidth()/outerHeight() //包含padding,border
- outerWidth(true)/outerHeight(true) //包含padding,border,margin 二、jQuery位置
offset() position() scrollTop()/Left()
- 1.offset() 获取设置距离文档的位置(偏移) 跟父级没有关系
- 2.position() 获取相对于带有定位的父级元素的位置(偏移) 如果没有带定位的父级 则以文档为基准 // 这个方法不能设置偏移
- 3.scrollTop()/scrollLeft() 获取设置被卷去的头部和左侧