优点

  • 强大的选择器机制
  • 优质的隐私迭代
  • 链式编程

选择机制

选择器

  1. 标签名

    $('div')

  2. id

    $('#id')

  3. class

    $('.clname')

  4. 属性

    $('div:[name='66']')

  5. 后代第一个

    $('ul>li:first')

  6. 后代最后一个

    $('ul>li:last')

  7. css结构为类

    $('ul>li:nth-child(2)')

  8. css 结构为类奇数

    $(ul>li:nth-child(odd))

  9. 索引

    $('ul>li').eq(2)

  10. 偶数

    $('ul>li:even')

筛选器

名称 写法
第一个 $('ul>li').first()
最后一个 $('ul>li').last()
下标索引 $('ul>li').eq(num)
上一个兄弟 $('ul>li').eq(num).prev()
下一个兄弟 $('ul>li').eq(num).next()
之前所有 $('ul>li').eq(num).prevAll()
之后所有 $('ul>li').eq(num).nextAll()
所有兄弟 $('ul>li').silnlings()
父级 $('ul>li').parent()
所有父级 $('ul>li').parents()
当前索引下标 $('ul>li').eq(2).index()
查看符合条件的标签 $('ul>li').find('条件')

操作

属性操作

  1. bool类型: prop()
  2. 其他类型: attr()
操作 prop attr
删除 dom.removeProp('属性') dom.removeAttr('属性')
获取 dom.prop('属性') dom.attr('属性')
添加 dom.prop('属性','值') dom.attr('属性','值')

class操作

  1. 新增

    dom.addClass('name')

  2. 删除

    dom.removeClass('name')

  3. 切换(有或没有)

    dom.toggleClass('name')

  4. 是否存在

    dom.hasClass('name')

css操作

  • 获取 dom.css('属性')
  • 设置 dom.css('属性','值')
  • 设置 dom.css({属性:值, 属性:值})

标签插入内容操作

  • dom.html()
  • dom.text()

事件

事件绑定与删除

  • 相关代码

    dom.on(类型,函数)

    dom.on(类型,数据,函数)

    dom.off(类型,函数) -- 删除

    dom.on('click', {name:"张三",age:18}, e=>{})

委托

dom.on(类型,委托对象,函数)

dom.on('click', 'span', e=>{})

特殊事件绑定

  1. dom.click(函数)
  2. dom.hover(函数,函数)

    移入移除效果
  3. dom.one(函数)

    触发一次
  4. dom.trigger(事件名称)

    立即触发一次
  5. $(window).ready()
    • DOM加载完成后
    • 等待dom树加载完即可
    • 可以执行有多次

循环

dom.each((k,v)=>{})

节点操作

获取元素站位

名称 写法
内容宽/高 dom.width() / dom.height()
内容+padding dom.innerWidth() / dom.innerHeight()
内容+padding+border dom.outerWidth() / dom.outerHeight()
内容+padding+margin dom.outerWidth(true) / dom.outerHeight(true)

获取元素坐标

  • 距离窗口

    dom.offset()

    dom.offset({left:0px,top:0px})

  • 距离父物体

    dom.position()

浏览器滚动

$(window).scrollTop()

$(window).scrollLeft()

节点操作

  1. 创建

    $('内容')

  2. 写入

    • 父级最后

      fdom.append(dom)

      dom.appendTo(fdom)

    • 父级起始

      fdom.prepend(dom)

      dom.prependTo(fdom)

    • 标签之后

      dom.after(ndom)

      ndom.insertAfter(dom)

    • 标签之前

      dom.before(ndom)

      ndom.insertBefore(dom)

  3. 节点/标签替换

    dom.replaceWith(ndom)

    ndom.replaceAll(dom)

  4. 删除

    dom.empty

    dom.remove()

  5. 克隆

    dom.clone()

    • 参数1:默认false 子集事件默认也会克隆
    • 参数2:默认true
    • 参数1:true 参数2:false 只克隆本身不可隆子元素事件

阻止默认行为

  • 冒泡: stoppropagation()
  • 捕获: preventDefult()
  • 所有: return false

动画

标准动画

  • 消失

    dom.hide(时间, 方式, 函数)

  • 显示

    dom.show(时间, 方式, 函数)

  • 切换

    dom.toggle(时间, 方式, 函数)

 // 给切换按钮,添加事件
$('[name="toggle"]').click(function(){
$('div').toggle( 2000 , 'linear' , function(){
console.log('div完全切换了');
} )
})

折叠动画

  • 消失

    dom.slideUp()

  • 显示

    dom.slideDown()

  • 切换

    dom.slideToggle()

渐隐渐现

  • 消失

    dom.fadeOut()

  • 显示

    dom.fadeIn()

  • 切换

    dom.fadeToggle()

自定义动画

dom.animate({属性;值, ...}, 时间, 方式, 函数)

动画结束

  • 从当前运动为止

    dom.stop()

  • 从上个一个运动结束

    dom.finish()

扩展

ajax请求

 $.ajax({
//请求方式
type : "POST",
//请求的媒体类型
contentType: "application/json;charset=UTF-8",
//请求地址
url : "http://127.0.0.1/admin/list/",
//数据,json字符串
data : JSON.stringify(list),
//请求成功
success : function(result) {
console.log(result);
},
//请求失败,包含具体的错误信息
error : function(e){
console.log(e.status);
console.log(e.responseText);
}
});

深浅拷贝

  1. 浅拷贝:拷贝复制引用类型的内存地址
  2. 深拷贝:拷贝复制,引用类型的数据,两个变量之间没有相互联系

    $.extend(参数1, 参数2, 参数3)

    • 参数1:

      1. true 深拷贝
      2. false 浅拷贝
    • 参数2: 新变量
    • 参数3: 原始变量

ajax全局钩子函数

  • 作用:监听函数执行,当执行到某个状态,执行钩子函数对应的程序
  • ajax的基本步骤:
    1. 声明定义一个ajax对象
    2. 定义 open()
    3. 定义 send()
    4. 接收响应体内容
  • 写法
    1. $(window).ajaxStart()

      • 阶段:ajax开始前
      • 次数:有多个ajax,也只触发一次
      • 注意:如果一个作用域下,有多个人ajax,只会在第一个 ajax 请求之前触发
    2. $(window).ajaxSend()
      • 阶段:ajax发送前
      • 次数:有几个send,触发几次
    3. $(window).ajaxSuccess()
      • 阶段:ajax请求成功
      • 次数:成功几次,触发几次
    4. $(window).ajaxError()
      • 阶段:ajax失败
      • 次数:失败几次,触发几次
    5. $(window).ajaxComplete()
      • 阶段:ajax请求完成
      • 次数:完成几次,触发几次
    6. $(window).ajaxStop()
      • 阶段:ajax所有请求完成
      • 次数:多次请求结束,只有最后一次会触发
    // 在请求,开始时会触发
// 多个请求,只会触发一次
$(window).ajaxStart(()=>{
console.log('第一个请求就要开始了');
}) // 在发送请求时会触发
// 多个请求,会触发多次
$(window).ajaxSend( function(){
console.log('发送了一个请求');
} ) // 在请求成功时,会触发
// 多个请求成功,会触发多次
$(window).ajaxSuccess(()=>{
console.log('有一个请求成功了')
}) // 在请求失败时,会触发
// 多个请求成功,会触发多次
$(window).ajaxError(()=>{
console.log('有一个失败成功了')
}) // 在请求结束时,会触发
// 多个请求结束,会触发多次
$(window).ajaxComplete(()=>{
console.log('有一个请求结束了')
}) // 在所有请求结束时,会触发
// 只会触发一次
$(window).ajaxStop(()=>{
console.log('所有请求都结束了')
})

多库并存

  • 问题

    1. 当其他封装的插件或框架 操作方法与jQuery操作方法发生冲突
    2. 使用的也是 $/jQuery 语法来调用
    3. 操作语法就会发生冲突,需要调用jquery的调用方法
  • 写法

    1. $.noconflict() $符号不能用
    2. $.noconflict(true) $ 和 jQuery都不能用

    let abc = $.noconflict(true)

    abc(‘div’).css(color,red)

快速上手jquery的更多相关文章

  1. 快速上手seajs——简单易用Seajs

    快速上手seajs——简单易用Seajs   原文  http://www.cnblogs.com/xjchenhao/p/4021775.html 主题 SeaJS 简易手册 http://yslo ...

  2. 快速上手RaphaelJS-Instant RaphaelJS Starter翻译(一)

       (目前发现一些文章被盗用的情况,我们将在每篇文章前面添加原文地址,本文源地址:http://www.cnblogs.com/idealer3d/p/Instant_RaphaelJS_Start ...

  3. knockoutJS 快速上手

    翻译:Knockout 快速上手 - 3: knockoutJS 快速上手 许多时候,学会一种技术的有效方式就是使用它解决实际中的问题.在这一节,我们将学习使用 Knockout 来创建一个常见的应用 ...

  4. npm、webpack、vue-cli 快速上手

    npm+webpack+vue-cli快速上手   Node.js   npm 什么是Node.js  以及npm 简单的来说 Node.js 就是运行在服务端的JavaScript,基于Chrome ...

  5. 快速上手 Echarts

    最近使用到了 百度的 Echarts 数据可视化工具,这里简单介绍如何快速上手. 一.下载 这里选择目前最新版本,4.2.1 地址:https://github.com/apache/incubato ...

  6. 【Python五篇慢慢弹】快速上手学python

    快速上手学python 作者:白宁超 2016年10月4日19:59:39 摘要:python语言俨然不算新技术,七八年前甚至更早已有很多人研习,只是没有现在流行罢了.之所以当下如此盛行,我想肯定是多 ...

  7. 快速上手Unity原生Json库

    现在新版的Unity(印象中是从5.3开始)已经提供了原生的Json库,以前一直使用LitJson,研究了一下Unity用的JsonUtility工具类的使用,发现使用还挺方便的,所以打算把项目中的J ...

  8. [译]:Xamarin.Android开发入门——Hello,Android Multiscreen快速上手

    原文链接:Hello, Android Multiscreen Quickstart. 译文链接:Hello,Android Multiscreen快速上手 本部分介绍利用Xamarin.Androi ...

  9. [译]:Xamarin.Android开发入门——Hello,Android快速上手

    返回索引目录 原文链接:Hello, Android_Quickstart. 译文链接:Xamarin.Android开发入门--Hello,Android快速上手 本部分介绍利用Xamarin开发A ...

  10. Git版本控制Windows版快速上手

    说到版本控制,之前用过VSS,SVN,Git接触不久,感觉用着还行.写篇博文给大家分享一下使用Git的小经验,让大家对Git快速上手. 说白了Git就是一个控制版本的工具,其实没想象中的那么复杂,咱在 ...

随机推荐

  1. Python 中的抽象类和接口类

    [抽象类] 抽象类是一个特殊的类,只能被继承,不能被实例化.它主要用于作为其他类的基类或模板. 抽象类可以包含抽象方法和具体方法.在抽象类中定义的抽象方法必须在子类中进行实现. from abc im ...

  2. swiper + ts 类型报错

    swiper + ts 类型报错 "swiper": "^9.4.1" 版本号 原因 修改 tsconfig.json 文件下面的 moduleResoluti ...

  3. Next.js 与 React 全栈开发:整合 TypeScript、Redux 和 Ant Design

    在上一集,我们编写完毕导航页面,并且非常的美观,但是我们发现编写网站是存静态的,在现代的网站当中一般都是动静结合,也就是说部分数据是从数据库读取的,部分静态数据是写在网页上面的,因此这章讲述如何搭建一 ...

  4. 用 300 行代码手写提炼 Spring 核心原理 [3]

    系列文章 用 300 行代码手写提炼 Spring 核心原理 [1] 用 300 行代码手写提炼 Spring 核心原理 [2] 用 300 行代码手写提炼 Spring 核心原理 [3] 上文 中我 ...

  5. Open-RAG:将开源LLM模型集成为高效RAG模型 | ENMLP'24

    本文是对公开论文的核心提炼,旨在进行学术交流.如有任何侵权问题,请及时联系号主以便删除. 来源:晓飞的算法工程笔记 公众号,转载请注明出处 论文: Open-RAG: Enhanced Retriev ...

  6. sqli注入之sqlmap

    善于使用google hacking的搜索语法不失为一种有效的挖洞方法. 利用google浏览器inurl搜索语法寻找可能sql注入的php网站url inrul:productInfo.php?id ...

  7. Apache APISIX 和 Kong 的选型对比

    从 API 网关核心功能点来看,两者均已覆盖: 功能 Apache APISIX Kong 动态上游 支持 支持 动态路由 支持 支持 健康检查和熔断器 支持 支持 动态SSL证书 支持 支持 七层和 ...

  8. redis6.0安装与使用

    [Linux] 源码安装: 下载安装 Cd /usr/local/src/ wget https://download.redis.io/releases/redis-6.0.9.tar.gz $ t ...

  9. 系统日志查询之journalctl

    journalctl是什么 查询系统日志的工具 journalctl -xe是什么意思 -xe是排查问题时最常用的参数:-e 从结尾开始看-x 相关目录(如:问题相关的网址) journalctl - ...

  10. 初识RPA以及简单的RPA项目——微信群发机器人

    一.RPA的认识和理解 RPA(Robotic Process Automation)即是机器人流程自动化,简称RPA,是一种自动化技术,可以帮助组织实现业务流程的自动化执行,提高效率和准确性.按我的 ...