jQuery

jQuery js 函数库 write less do more
写·更少,做更多
封装简化 dom 操作(增删改查)

  • jquery 核心函数 $/jQuery
  • jQuery 核心对象 执行$()返回的对象

HTML 元素操作方便(强大选择器:快速查找 dom 元素)
隐式遍历:一次操作多个元素
HTML 事件处理
css 操作
链式调用
读写合一(一个方法操作):不传入参数一般都是读,传入参数一般都是写 attr(),html(),prop()等等
浏览器兼容
易扩展插件
Ajax 封装

本地引入 cdn 引入(更快)
测试版 生产板

  • jquery 核心函数 $/jQuery
  • 当成一般函数 $(params)
  1. param 是函数
    • 相当于 window.οnlοad=function()(文档加载完成的监听)
  2. param 是选择器字符串
    • 查找所有匹配的 dom 元素,返回包含所有的 dom 元素的 jQuery 对象
  3. param 是 dom 对象
    • 将 dom 元素对象包装成 jQuery 对象返回($this)
  4. param 是 html 标签字符串
    • 创建标签 dom 元素对象并封装成 jQuery 对象
  • 作为对象使用$.xxx()
    • 包含所有匹配的 n 个 dom 元素的为数组对象
    • 执行$()返回的就是 jQuery 对象
    • 基本行为
      1. length 得到 dom 元素的个数
      2. [index]/get[index] 根据下标得到 dom 元素
      3. each()遍历输出数组中的所有元素
      4. index()

–选择器本身是一个有特定语法的规则的字符串,没有实质用处
– 基本规则 css 选择器语法, 对其扩展了
–调用$(),将选择器作为参数传入才能起作用
– $()作用:根据选择器规则在整个文档中查找所有匹配的标签数组,并封装成 jQuery 对象返回

基本选择器

  1. id
  2. 元素
  3. 类选择器
  4. 并集
  5. 交集

层次选择器

  1. 后代
  2. 子元素
  3. 后面兄弟
  4. 后面所有的匹配的选择器

过滤选择器

  1. 在原有的选择器匹配的元素中进一步的进行过滤
    :first (‘div:first’) 选择第一个 div
    :last (‘.box:last’) 类为 box 的最后一个
    :not (‘div:not(.box)’) 类不为 box 的所有元素
    :gt(index) :lt() (‘li:gt(0):lt(2)’) 注意一步一步选择的 多个过滤选择器是依次执行的
    (‘li:lt(3):gt(0)’)
    :contains() (‘li:contains(“bbbb”)’) 选择内容为 bbbb 的 li 注意 contains 里面为双引号
    :hidden (‘li:hidden’) 选择隐藏的 li
    [] (‘li[title]’) 选择有 title 属性的 li
    [] (‘li[title=“aaa”]’) 选择 title 属性值为 aaa 的 li

表单选择器

 可以组合使用下面的
  1. :text
  2. :password
  3. :checked
  4. :disabled
  5. :select
  6. :option
  7. :submit
  8. :reset
  9. :radio
  10. :file

$工具方法

  1. $.each(对象,回调) 回调参数 key value
  2. $,trim() 去除空格
  3. $.type(obj) 得到数据类型
  4. $.isArray() 判断是否数组
  5. $.isFunction() 判断是否函数
  6. $.parseJSON(json) json 对象->js 对象 特定格式的字符串 json {} 键要双引号 值看数据类型决定要不要双引号 json []json 数组
    1. JSON.parse()
    2. JSON.Stringfy()

属性

attr()操作属性值为非布尔值的属性 — prop():专门操作属性值为布尔值的属性
attr(name,value)

  1. 直接使用就是读取
  2. 传入参数 第一个属性名 第二个属性值
  3. 设置属性 如果属性名重复则覆盖该属性名
  • removeAttr(name)/removeprop(name) 移除属性名
  • addClass(属性值) 不删除以前的,直接添加
  • removeClass(属性值)
  • (‘li:first’).html(‘

    mmmm

    ’) 加入标签结构
  • .val(value)/.value() 传入参数写,不传入读取
  • html()/html(htmlString) 读写标签体文本

样式相关

CSS

  1. .css(属性名)
  • .css(‘color’) 读取
  1. .css(属性名,属性值) 设置一个
  • .css(‘color’,‘red’)
  1. .css({属性名:属性值,属性名:属性值}) 设置多个
    -css({
    color:‘red’,
    width:200px
    })

位置

相对于父元素
offset() position() scrollTop() scrollLeft()

  1. offset() 读
  2. offset({})设置
    offset({
    left:50px,
    top:100px
    })
  3. position() 读 不能设置写
  4. scrollTop() 读取 y 坐标 不同的浏览器有不同的设置对象 body 或 html
    • scrollTop(数值) 设置滚动条到指定位置
    • scrollTop(200)

内容尺寸

宽高

  1. .width() width
  2. .height() height

内部尺寸

宽高内边距

  1. .innerwidth() width+padding
  2. .innerheight() height+padding

外部尺寸

宽高内边距外边距
传布尔值决定是否加外边距

  1. outerwidth(false/true) 默认为 false height+padding+border 为 true 加上 margin
  2. outerheight(false/true) 默认为 false height+padding+border 为 true 加上 margin

筛选

过滤 过滤的当前元素的其中的一些元素

  1. first()
  2. last()
  3. filter(‘[属性名=属性值]’) 有某个属性名且值为某个数
  4. not(‘[属性名=属性值]’)或 filter(‘[属性名!=属性值]’) 没有这个属性的
  5. filter(‘[属性名][属性名=属性值]’) 或者 filter(‘[属性名!=属性值]’).filter(‘[属性名]’) 有某个属性但值不是某个数
  6. has()

查找 查找元素的子孙,兄弟,父元素,不是当前的这个/些元素

括号里面可以具体传参进行具体的下一步选择

  1. children() 查找子标签
  2. find() 查找后代标签
  3. parent() 查找父标签
  4. preveAll() 查找前面的所有标签
  5. sliblings()查找所有的兄弟标签

文档处理

内部插入

  1. append(‘标签’) 添加 dom 节点 append(‘’)
  2. 创建好的标签.appendTo(‘某个标签里面’) ( " < s p a n > < / s p a n > " ) . a p e n d T o ( ′ ("<span></span>").apendTo(' ("<span></span>").apendTo(ul’)
  3. preappend(‘标签’)
  4. 创建好的标签.preappendTo(‘某个标签里面’) ( " < s p a n > < / s p a n > " ) . p r e a p e n d T o ( ′ ("<span></span>").preapendTo(' ("<span></span>").preapendTo(ul’)

外部插入

  1. before(‘标签’) 插入某个标签之前
  2. after(‘标签’) 插入某个标签之后

替换

  1. 替换的标签.repalceAll(‘被替换标签’) 替换所有的标签
  2. 被替换的标签.repalceWith(‘替换的标签’)

删除

  1. remove(‘标签’) 移除子标签
  2. empty(‘标签’) 移除当前的标签,包括子标签

事件

事件处理

绑定事件

on(事件,回调函数)

  1. click(回调函数)
  2. mouseenter() 鼠标进入 mouseover
  3. mouseleave() 鼠标离开 mouseout
  4. hover(移入回调函数,移出回调函数)使用的 mouseenter 和 mouseleave
    mousemover mouseenter 区别
    mouseover 在移入子元素时也会触发
    mouseenter 只有移入当前元素才会触发

解除绑定

  • off()解除所有监听
  • off(事件)解除指定事件的监听

事件坐标

首先考虑原点在哪儿

  • clientX 相对于视口(窗口)
  • clientY
  • pageX 原点为页面左上角
  • pageY
  • offsetX 原点为事件元素
  • offsetY

事件相关处理

  1. 阻止事件冒泡
  • event.stopPropagation()
  1. 阻止事件默认行为
  • event.preventDefault()

事件委托

将相应的监听事件绑定到共同的父元素上面

  1. $(父选择器).delegate(子选择器,事件名,回调函数)
  2. $(父选择器).undelegate(事件名)

内置动画

淡入 淡出 原理 改变 opacity 的值

  1. fadeIn()
  2. fadeOut()
  3. fadeToggle()切换淡入淡出

滑动动画 原理 高度的改变

  1. slideUp() 向上滑动
  2. slideDown() 向下滑动

显示隐藏 宽高透明度

  1. hide(数值毫秒,回调函数)隐藏后触发回调
  2. show()
  3. toggle() 切换显示隐藏

多库共存

如果两个库都有 ,就存在冲突经确认可以释放 ,就存在冲突 经确认可以释放 ,就存在冲突经确认可以释放的使用权,让另一个库正常使用,此时 jQuery 库只能使用 jQuery 了
api:jQuery.noConflict();
如果使用了这个当前的 jquery 就不能使用$,只能使用 jQuery 函数了

window.onload() 与$(doucument).ready()的区别

  • onload 页面所有文档加载完成才会触发回调,包括图片等等,只有一个监听回调(晚)
  • ( d o u c u m e n t ) . r e a d y ( ) 等同于 (doucument).ready() 等同于 (doucument).ready()等同于(function(){}) 也是页面加载完就回调(早),可以有多个监听回调

jQuery 插件:基于 jQuery 编写的扩展库

  1. 扩展 jQuery 工具方法 $.extend(object)
  2. 扩展 jQuery 对象的方法 $.fn.extend(object)

jquery 已有插件

  1. jquery-validation (表单验证)
  2. jQuery-UI ()
  3. laydate() 这是原生 js 的日期插件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值