等着页面加载完再执行

  1. $(function(){
  2. });
  3. $(document).ready(function(){})

原生对象和jquery对象相互转化(因为video标签$没有播放属性,所以只能用原生)

  1. <video src="mov.mp4" muted></video> //mutedgoogle浏览器的兼容性写法
  2. 1jquery对象
  3. $('video')
  4. 2、原生对象
  5. var myVideo=document.querySelector('video');
  6. 3、原生对象改为jquery对象
  7. $(myVideo)
  8. 4juery对象转化为原生对象
  9. 方法一:$('video')[0].play()
  10. 方法二:$('video').get(0).play()

jquery选择器

  1. $('选择器') //里面是css选择器即可
名称 用法 描述
ID选择器 $(‘#id’) 获取指定id的选择器
全选选择器 $(‘*’) 获取所有元素
类选择器 $(‘.class’) 获取同一类标签的所有元素
标签选择器 $(‘div’) 同一类标签选择器
并集选择器 $(‘dev,p,li’) 选取多个元素
交集选择器 $(‘li.current’) 交集元素

筛选选择器

语法 用法 描述
:first $(‘li:first’) 获取第一个li
:last $(‘li:last’) 获取最后一个li元素
:eq(index) $(‘li:eq(2)’) 获取到的li元素中,选择索引号为2的元素,索引号从0开始
:odd $(‘li:odd’) 获取到的li元素中,选择索引号为奇数的元素
:even $(‘li:even’) 获取到的li元素中,选择索引为偶数的元素

jquery筛选方法
image.png
1、jquery内部有隐式迭代的功能

  1. $('div').css('background','pink') //此代码会将页面中所有的div都置换成粉色

jquery中的排他思想

  1. //1、隐式迭代 给所有的按钮都绑定了一个点击事件
  2. $("button").click(function(){
  3. var index=$(this).index()//获取当前索引号
  4. //2、当前的元素变化背景颜色
  5. $(this).css("background","pink")
  6. //3、其余的兄弟去掉背景颜色 因为隐式迭代的原因不需要使用for循环了
  7. $(this).siblings('button').css('background','')
  8. //链式编程的写法
  9. $(this).css('color','red').siblings().css('color','');
  10. })

jquery样式操作

操作样式css修改

1、返回属性值
$(this).css(‘color’)
2、设置属性值
$(this).css(‘color’,’red’)
$(this).css({
width: 100,
height: 200
}) //如果css里的参数是对象,则属性可以不加引号

修改样式操作类

  1. $("div").click(function(){
  2. $(this).addClass('current') //current是类名
  3. $(this).removeClass('current') //移除类名
  4. $(this).toggleClass('current') //切换类
  5. })

jquery效果

显示/隐藏

  1. show([speed,[easing],[fn]])
  2. speed: 'slow'/'normal'/'fast'/1000(毫秒)
  3. easing:(Optional)用来指定切换效果,默认'swing',也可用‘linear
  4. fn:回调函数,在动画执行完之后,执行的函数,只会执行一次
  5. $('li').hover(function(){
  6. //鼠标经过
  7. $(this).children('ul').slideDown(200);
  8. },function(){
  9. $(this).children('ul').slideUp(200);
  10. })
  11. hover如果只写一个函数,那么鼠标经过和鼠标离开都会出发
  12. $('li').hover(function(){
  13. $(this).children('ul').slideToggle();
  14. })
  15. 动画队列及其停止排队方法
  16. 动画或者效果一旦触发就会执行,如果多次触发,就造成多个动画或者效果的排队执行
  17. 停止排队 stop()
  18. $('li').hover(function(){
  19. $(this).children('ul').stop().slideToggle(); //解决排队动画的效果
  20. })

hide()
toggle()
滑动效果
slideDown()
slideUp()
slideToggle()
淡入淡出
fadeIn()
fadeOut()
fadeToggle()
fadeTo() //修改透明度
自定义动画
animate()

  1. animate(params,[speed],[easing],[fn])
  2. 自定义动画
  3. $('button').click(function(){
  4. $('div').animate({
  5. left: 500,
  6. top: 200
  7. })
  8. },function(){
  9. //回调函数
  10. })

jquery属性操作

获取属性值的方式

获取元素固有属性值

获取:element.prop(‘属性名’)
设置:element.prop(‘属性名’,‘属性值’)

获取自定义属性值

获取:element.attr(‘属性名’)
设置:element.attr(‘属性名’,‘属性值’)

数据缓存data()这个里面的数据是存放在元素内存里面

  1. 设置:
  2. $("span").data('uname','andy') //这里在span的属性上面并看不到uname属性,起到一个暂存的作用
  3. 获取:
  4. $("span").data('uname'
  5. 也可以获取h5自定义属性,第一个不用写data- 而且返回的是数字型

全选按钮案例

  1. $(".checkall").change(function(){
  2. $("j-checkbox",".checkall").prop("checked",$(this).prop("checked"))
  3. })
  4. $(".j_checkbox").change(function(){
  5. if($(".j_checkall:checked").length===$('.j_checkbox').length){
  6. $(".checkall").prop("checked",true);
  7. }else{
  8. $(".checkAll").prop("checked",false)
  9. }
  10. })

jquery文本属性值

1、普通元素内容html() (相当于原生innerHTML)
html() 获取元素的内容
html(‘内容’) 设置元素的内容

2、普通元素文本内容text() (相当于原生innerText)

  1. 增加商品数量模块 首先声明一个变量,当我们点击+号(increment),就让这个值++,
  2. 然后赋值给文本框
  3. $(".increment").click(function() {
  4. //val 获取表单元素的值
  5. var n=$(this).siblings('.text').val()
  6. })
  7. $(this).parent() //获取父级元素的值
  8. $(this).parents() //获取所有的祖先元素
  9. $(this).parents(选择器名) //获取指定元素

jquery元素操作

jquery隐式迭代是对同一类元素做了同样的操作,如果想要给同一类元素做不同操作
就需要用到遍历

语法

  1. $("div").each(function(index,domEle){XXX;})
  2. 1each()方法遍历匹配的每一个元素。主要用于Dom操作
  3. 2index索引号,demEle是每个DOM元素,不是jquery对象
  4. $.each(object,function(index,element {}))
  5. 1$.each()方法可用于遍历任何对象,主要用来数据处理,比如数组,对象
  6. 2、里面的函数有2个参数:index是每个元素的索引号;element遍历内容
  7. 整数字符串转化为整数数字类型:parseInt()
  8. 浮点数字符串转化为整数数字类型:parseFloat()

创建元素

element.append(‘内容’) //类似原生appendChild()

  1. 内部添加元素,生成之后,它们是父子关系
  2. 外部添加元素,生成之后,他们是兄弟关系
  3. $(function(){
  4. // 1、创建元素
  5. var li=$("<li>我是后来创建的li</li>")
  6. // 2、 添加元素
  7. // (1) 内部添加
  8. $("ul").append(li);//内部添加并且放到内容的放在后面
  9. $("ul").prepend(li);//内部添加并且放到内容的最前面
  10. //(2)外部添加
  11. var div=$("<div>我是kkkk</div>")
  12. //$(.test).after(div)
  13. $(".test").before(div)
  14. // 3.删除元素
  15. $("ul").remove() //删除匹配的元素(本身)
  16. ele.empty() //删除匹配的元素集合中所有的子节点(本身元素不删除)
  17. ele.html("") //清空匹配的元素内容,html里是“” 和empty作用一样
  18. $(".j-checkbox:checked").parents(".cart-item").remove()
  19. })
  20. // 给选中的商品添加背景颜色 check-card-item
  21. if($(this).prop("checked")) {
  22. // 让所有的商品添加 check-card-item
  23. $(".card-item").addClass("check-card-item")
  24. }else{
  25. $(".card-item").removeClass("check-card-item")
  26. }

jquery尺寸、位置操作

尺寸

语法 用法
width()/height() 获取匹配元素宽度和高度值
innerWidth()/innerHeight() 获取匹配宽度和高度值 包含padding
outerWidth/outerHeight() 获取匹配宽度和高度值 包含padding 和border
outerWidth(true)/outerHeight(true) 获取匹配宽度和高度值 包含padding 和border margin

以上参数为空,则是获取相应的值,返回的是数字型
如果参数是数字,则是修改相应的值
参数可以不必写单位

位置

  1. 1、获取设置距离文档的位置 (偏移)offset
  2. 取值:$(".son").offset() //返回时一个Object :$(".son").offset().top
  3. 设置值:$(".son").offset({
  4. top: 200,
  5. left: 200
  6. })
  7. 2、获取距离带有定位父级位置 (偏移) position 如果没有带有定位的父级,则以文档为准
  8. $(".son").position() // 只能获取,不能设置偏移
  9. 3、获取被卷去头部的距离
  10. $(window).scroll(function(){ //监听页面滚动的方法
  11. $(document).scrollTop(); //获取
  12. $(document).scrollTop(100); //设置
  13. })
  14. 4、带有动画的返回顶部
  15. $('.back').click(function(){
  16. //1、核心原理:使用animate动画返回顶部
  17. //2、animate动画函数里面有个scrollTop属性,可以设置位置
  18. //3、但是是元素做动画,因为$("body,html").animate({scrollTop})
  19. $("body,html").stop().animate({
  20. scrollTop: 0
  21. })
  22. })
  1. <ul class='nav'>
  2. <li>
  3. <a href='#'>微博</a>
  4. <ul>
  5. <li><a href=''>私信</a></li>
  6. <li><a href=''>评论</a></li>
  7. <li><a href=''>@我</a></li>
  8. </ul>
  9. </li>
  10. <li>
  11. <a href='#'>微博</a>
  12. <ul>
  13. <li><a href=''>私信</a></li>
  14. <li><a href=''>评论</a></li>
  15. <li><a href=''>@我</a></li>
  16. </ul>
  17. </li>
  18. </ul>
  19. $(function(){
  20. //鼠标经过
  21. $('.nav>li').mouseover(function(){
  22. // $(this) jquery的当前元素 this不要用引号
  23. $(this).children('ul').show();
  24. })
  25. $('.nav>li').mouseout(function(){
  26. // $(this) jquery的当前元素 this不要用引号
  27. $(this).children('ul').hide();
  28. })
  29. })
  30. //电梯导航
  31. //点击电梯导航页面可以滚动到相应内容区域
  32. $(".fixedtool li").click(function() {
  33. //当我们每次点击小li 就需要计算出页面要去往的位置
  34. var cuurent=$(“.floor .w”).eq($(this).index()).offset().top
  35. $("body html").stop().animate({
  36. scroolTop: cuttent
  37. })
  38. $(this).addClass("current").siblings().removeClass()
  39. })
  40. //页面滚动到某个内容区域,左侧电梯导航小li相应添加和删除current类名
  41. $(".floor .w").each(function(i,ele) {
  42. if($(document).scrollTop()>=$(ele).offset().top){
  43. $(".fixedtool li").eq(i).addClass("current").siblings().removeClass();
  44. }
  45. })

jQuery事件

jQuery事件注册 on/one(只会触发一次)

image.png
image.png
image.png

image.png
image.png

  1. $("ul").on("click","a",function(){
  2. $(this).parent().slideUp(function(){
  3. //slideUp之后,a还是在的,只是隐藏了,我们需要再
  4. //它的毁调函数中删除该标签
  5. $(this).remove();
  6. })
  7. })

事件处理off()解绑事件
image.png

image.png

image.png

image.png

jQuery事件处理

jQuery事件对象

image.png

JQuery种的其他方法

jquery对象的拷贝方法

image.png

Jquery多库共存的两种方式

jquery插件