有关jQuery的所有知识点!!!

jQuery

一、jQuery的介绍

1.1 jQuery的遗留问题
  • window.onload事件只可以出现一次,重复出现会覆盖前面的

  • 代码容错性差,前面代码出错后面也不会继续执行

  • 浏览器兼容性问题

  • 简单功能实现复杂化

1.2 什么是JQuery
  • jQuery是JS的一个库,封装我开发过程中常用的一些功能,方便调用,提高开发效率

  • 主要学习JQuery封装API

1.3 jQuery的两大特点
  • 链式编程$('div').hide().text('内容')

    • 原理 return this

    • $('div').hide() 返回的还是$('div')

  • 隐式迭代:方法内部会为匹配到的所有元素进行循环遍历,执行相应的方法

1.4 jQuery的使用
  • 引入(引包)

  • 入口函数

  • 功能代码的实现

1.4.1 版本
  • 1.x 版本:最新版 v1.11.3 兼容IE678 不兼容新特性

  • 2.x 版本:最新版v2.1.4 不兼容IE678 不兼容新特性

  • 3.x版本: 最新版v3.6.3 不兼容IE678 兼容新特性

二、jQuery的入口函数和$符

2.1入口函数
  • 原生javascript的入口函数是:window.onload = function(){}

  • jQuery的入口函数:

    • $(document).ready(function(){})

    • $(function(){})

2.2jQuery的$符
  • jQuery使用$的原因:书写简洁,相对于其他字符与众不同,容易记

  • jQuery占用了两个变量:$和jQuery;

  • $和jQuery被称为jQuery顶级对象;

2.2.1jQuery入口函数和原生javaScript入口函数的区别
  • 区别一:书写方式不同

    • 原生的入口函数只能出现一次,出现多次会存在事件覆盖的问题;

    • jQuery的入口函数,可以出现任意次,并不存在覆盖;

  • 区别二:执行时机不同

    • JavaScript入口函数是在所有文件资源加载完毕后执行,这些文件资源包括:页面文档,外部的js文件,外部的css文件、图片、视频等;

2.3 DOM对象和jQuery对象的比较
2.3.1区别
  • jQuery 获取的是一个数组 数组中包含原生JS的DOM对象

2.3.2 DOM对象与jQuery对象之间的转换
  • DOM对象为jQuery对象

    • $(DOM对象)

  • jQuery对象转换为DOM对象

    • jQuery对象[index]

    • jQuery对象.get(index)

三、jQuery选择器

3.1jQuery的基本选择器
  • 语法说明用法
    $('#idName')选择id为指定值的第一个元素$('#container').text()
    $('.container')选择所有类名指定值的元素$('.container').css()
    $('element')选择所有标签为指定值的元素$('div').text()
    $('*')选择所有元素$('*').css('padding',0).css('margin',0)
    $('.container')选择多个指定元素
3.2层次选择器
  • 语法说明用法
    后代选择器空格$('div span')
    子代选择器>$('div>span')
    紧邻选择器+$('div+span')
    兄弟选择器~$('div~span')
3.3基本过滤选择器
  • 语法说明用法
    eq(index)index是从0开始的索引,选择索引号为index的元素$('div:eq(2)')
    gt(index)选择序号大于index的元素$('div:gt(3)')
    It(index)选择序号小于index的元素$('div:It(2)')
    :odd选择奇数的所有索引$('div:odd')
    :even选择偶数的所有索引$('div:even')
    :first选择匹配第一个元素$('div:first')
    :last选择匹配最后一个索引$('div:last')
3.4属性选择器
  • 符号说明用法
    $('a[href]')选择所有包含href属性的a元素$('a[href]')
    $('a[href = "ele"]')选择所有包含href = 指定值的元素$('a[href = "one"]')
    $('a[href != "baidu"]')选择所有href属性不等于daidu的元素,包含没有href属性的元素$('a[href != "baidu"]')
    $('a[href ^="b"]')选择所有href值以b开头的元素$('a[href ^="b"]')
    $('a[href $="u"]')选择所有href值中以u结尾的元素$('a[href $="u"]')
    $('a[href *= "i"]')选择所有href值中包含i的元素$('a[href *= "i"]')
    $('a[href][title = "ele"]')选择所有符合指定属性规则的元素,都符合才会被选中$('a[href][title = "ele"]')
3.5筛选选择器
  • 符号说明用法
    find(selector)查找指定元素的所有后代元素,参数必填$('.box').find('span')
    children()查找指定元素的子代元素$('.box').children()
    siblings()查找所有的兄弟元素(不包含自身)$('.box').siblings()
    parent()查找父元素$('.box').parent()
    eq(index)查找指定元素的第index元素$('.box').eq(index)
    parents(selector)获取指定的祖代
    next()获取当前元素的下一个兄弟
    nextAll()获取当前元素的后面所有的兄弟
    prev()获取当前元素的上一个兄弟
    prevAll()获取当前元素的上面所有兄弟
    filter()获取当前元素
    not()获取除了当前元素的所有兄弟

四、jQuery常用的API

4.1样式操作和类操作
4.1.1样式操作
  • 设置样式

    • $('div').click(function(){
          //$('div').css('backgroundColor','pink').css('height','300')
          $('div').css({
              'backgroundColor':'salmon',
              'height':'400'
          })
      })  //传递 json

  • 获取样式

    • 获取单个

      • $('ele').css('样式名')

    • 获取多个

      • $('ele').css('样式1','样式2',···)

4.1.2类操作
  • 添加类样式

    • $('selector').addClass('className')

  • 移除类样式

    • $('selector').removeClass('className')

  • 判断有没有样式

    • $('selector').hasClass('className')

  • 切换类样式

    • $('selector').toggleClass('className')

4.1.3样式操作和类操作的比较
  • 操作的样式非常少,那么可以通过.css()来实现;

  • 操作的样式很多,通过class类操作来表现;

  • 如果考虑以后维护方便,建议使用类的方式进行;

4.2动画
4.2.1显示隐藏动画
  • $('div').show()

    • 无参数,表示让指定的元素直接显示出来,这个方法的原理是通过display:'block',来实现的;

  • $('div').show(speed,callback)

  • $('div').hide()

    • 参数同上;

  • $('div').toggle()

4.4.2滑入滑出
  • $('div').slideDown(speed,callback);

  • $('div').slideUp(speed,callback);

  • `$('div').slideToggle(speed,callback);

    • 参数同上;

4.4.3淡入淡出
  • $('div').fadeIn(speed,callback);

  • $('div').fadeOut(speed,callback);

4.2.4自定义动画
  • $('div').animate({params},speen,callback);

  • 执行一组css属性的自定义画面;

    • 第一个参数表示:要执行动画的css属性,必填;

    • 第二个参数表示:执行动画的时长,选填;

    • 第三个参数表示:动画执行完后,立即执行的回调函数,选填

4.2.5停止动画
  • $('div').stop(boo,boo);

  • 第一个参数:

    • true:后续动画不执行

    • false:后续动画会执行

  • 第二个参数:

    • true:立即执行完当前画面

    • false:立即停止当前画面

  • stop方法的总结

    • 当调用stop()方法后,队列里面下一个动画将会立即开始,但是可如果第一个参数被设置为true,那么队列里面剩余的动画就会被删除,并且永远不会执行;

    • 如果第二个参数设置为true,那么当前画面会停止,但是参与画面的每一个css属性,将被立即设置为他们的目标值;

4.3jQuery属性操作
4.3.1设置或获取元素的固有属性
  • 所谓元素固有属性就是元素本身自带的属性,比如<a href=""></a>元素里的href就是固定属性

  • 获取属性的方法

    • $('div').prop('属性名')

  • 设置属性的方法

    • $('div').prop('属性名','属性值')

4.3.2设置或获取元素自定义属性
  • 用户自己给元素添加的属性,我们称之为自定义属性;

  • 获取属性的方法

    • $('div').attr('属性名')

  • 设置属性的方法

    • $('div').attr('属性名','属性值')

4.4jQuery内容文本
4.4.1普通元素内容
  • $('div').html

    • 不加参数,是获取元素内容

    • 加参数,是设置元素内容

4.4.2普通元素文本内容
  • $('div').text()

    • 不加参数,获取元素内容

    • 加参数,是设置元素的文本内容

4.4.3表单的val()值
  • $('input').val()

    • 不加参数,获取表单内容

    • 加参数,设置表单内容

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

  • 语法1:

    • $('div').each(function(index,ele){})

      • eash()方法遍历匹配的每一个元素,主要用DOM处理;

      • 里面的回调函数有两个参数:index是索引,ele是每个DOM元素,不是jQuery对象

      • 要想使用jQuery方法,需要把这个DOM元素转换为jQuery对象,$(ele)

  • 语法2:

    • $.each('div',function(index,ele){})

      • $each()方法遍历任何对象,主要用于数据处理,比如数组、对象;

4.5.2创建元素
  • $('<div></div>')

4.5.3添加元素
  • 内部添加

    • $('div').append():内容放在指定元素内的最后面;

    • $('div').prepend():内容放在指定元素内的最前面;

  • 外部添加

    • $('div').after():内容放在指定元素的最后面;

    • $('div').before():内容放在指定元素的最前面;

    • 外部添加,生成之后,他们是兄弟关系;

4.5.4删除元素
  • $('div').remove():删除匹配的元素(自身);

  • $('div').empty():清空指定元素中的所有节点;

  • $('div').html():清空指定元素中的所有节点,与empty方法相同,但是他可以设置内容;

4.6尺寸位置
4.6.1尺寸
语法用法
width() height()获取元素的宽高,只包含width和height
innerWidth() innerHeight()获取元素的宽高,包含padding
outerWidth() outerHeight()获取元素的宽高,包含padding、boeder
outerWight(true) outerHeight(true)获取元素的宽高,包含padding、border和margin
  • 以上参数,为空时,则获取相应值,返回的是数值型;

  • 参数不为空时,这是设置相应的数值;

  • 参数不能写单位;

4.6.2位置
  • offset,设置或获取元素偏移

    • offset()方法,设置或返回指定元素相对于文档的偏移坐标,跟父级没有关系;

    • 该方法有一个参数,是一个对象,这个对象有两个属性,一个是top,一个是left;

  • position,获取元素偏移

    • position()方法用于返回指定元素相对于带有定位的父级的坐标偏移,如果父级没有定位,则以body;

    • 同上;

  • scrollTop,设置或获取元素被卷进去的头部

    • 设置或返回元素被卷去的头部;

4.7事件
4.7.1事件注册
  • $('div').事件(function(){})`

4.7.2事件处理
  • 划过

    • $('div').hover(function() {})

①事件处理on()绑定事件
  • on()方法在指定元素上绑定一个或绑定多个事件的事件处理函数;

  • 语法:

    • $('div').on(events,[selector],callback)

    • events:表示事件类型,多个事件可以用空格隔开;

    • selector:是指定元素的事件委托给子元素,选填;

    • callback:回调函数;

②on方法的优势1:
  • 可以绑定多个事件,多个事件处理程序;

    • $('button').on('click',function(){
          console.log($(this).text());
      });
      ​
      $('button').on({
          click: function() {
              console.log('点击了');
          },
          mouseleave: function() {
              console.log('移出了');
          }
      });
③on方法的优势2:
  • 可以事件委派操作。事件委派的定义是:把原来加给子元素身上的事件绑定在父元素身上,就是把事件委派给父元素;

    • $('ul').on('click', 'li', function() {
          console.log($(this).text());
      });
      ​
④on方法的优势3:
  • 动态创建的元素,click()无法绑定事件。

    • $('ul').on('click', 'li', function() {
          console.log($(this).text());
      }); 
      $('button').click(function() {
          $('ul').append('<li>这是隐藏的li</li>')
      });
4.7.3解绑事件
  • off()方法可以移除通过on方法添加事件和事件注册的事件

    • $('div').off():移除指定元素身上所有事件;

    • $('div').off('事件1 事件2'):移除指定元素身上的指定事件,可以是多个;

    • $('div').off('事件1','事件2'):移除事件委托;

  • one()方法可以移出on方法添加事件和事件注册的事件

    • $('div').one('事件1 事件2'):一次性事件,只执行一次;

4.7.4自动(禁止)触发
  • $('button').click();

  • $('button').trigger('click');

  • $('button').triggerHandler('click');

  • 禁止触发右键

    • $('button').contextmenu(function() {})

4.7.4 事件委托
  • $(e.target)

4.7.5. 事件集合
事件说明
onclick鼠标点击左键触发
onmouseover / onmouseenter鼠标经过触发
onmouseout onmouseleave鼠标离开触发
onmousemove鼠标移动触发
onmouseup鼠标弹起触发
onmousedown鼠标按下触发
onfocus聚集时触发
onblur失焦时触发
dbclick双击
mouseover移入
mouseout移出
mousemove移动
mouseleave移出
mouseenter移入
changeinput
inputinput
focus聚焦
blur失焦
mouseUp鼠标抬起
mousedown鼠标按下
keyUp键盘抬起
keydown键盘按下
keypress键盘
load预加载
resize窗口变化
scroll滚动
contextmenu鼠标右键
4.8 jQ封装
  • let p = new Promise((res, rej) => {
        res();
        rej();
    }).then((res) => {
        console.log(1)
    }).catch((err) => {
        console.log(2)
    })

可能会有丢丢的不全,不要嫌弃,差不多就算这样的 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值