IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 前端 _ jQuery 之 小白版 -> 正文阅读

[JavaScript知识库]前端 _ jQuery 之 小白版

目录

认识 jQuery?

1. jQuery?获取元素 :

1 )??jQuery?的基本选择器 :?

2 )??jQuery?的特殊选择器?:?

3?)? jQuery?的筛选器?:?

2.? jQuery 操作元素 CSS 样式 :

3.? jQuery?操作元素类名 :?

4.? jQuery?操作元素属性 :?

5.? jQuery 绑定事件 :

1. on( ) 方法

2. one( ) 方法

3.?off( )?方法

4.?trigger( )?方法

5.?常用的事件函数

6.?特殊事件


认识 jQuery?

认识? jquery

+?官方名称 :? jQuery

+?是一个大型的 开源类库

??=>?封装的都是?DOM?相关的操作

+?jQuery?的 优势?:

=>?无与伦比的 选择器

=>?无处不在的 隐式迭代

=>?无所不能的 链式编程

+?优点 :?=>?全兼容

扩展了解?:?

前端的第三方

+?插件:?为了实现某一单一类功能而出现的封装代码

+?类库:?对于基本功能的封装,?功能类函数的封装

??=>?jQuery

+?框架:?一个有自己完整独立生态系统的代码封装

??=>?Vue

??=>?React

??=>?Angular

jQuery 的使用 :

??1.?必须要引入一个?第三方?文件

??=>?jquery.js

??2.?在页面引入

??3.?开始使用

jQuery 的引入 :

??+?可以引入?jquery.js?或者引入?jquery.min.js

??+?文件引入以后,?会向全局暴露两个变量名

????1.? $

????2.? jQuery

????=>?这两个名字完全一样

+?引入以后,?就可以使用?jQuery?里面提供的所有方法了

????=>? jQuery 方法网站 :??https://jquery.cuishifeng.cn/

注意 : =>? jQuery 的所有操作方法 :?
? ? ? ? + 必须是 jquery 的元素集合才能调用 <=?

<script src="./jquery/jquery.min.js"></script>
    
console.log($)
console.log(jQuery)


1. jQuery?获取元素 :

jQuery?的选择器 :?

+?语法:?$('选择器')

1 )??jQuery?的基本选择器 :?

??+?语法:?$('选择器')

??=>?可以完全按照?css?的方式来获取 ,?有多少获取多少

??=>?注意:?不管你用什么选择器,?获取到一定是一个?jquery?的元素集合

<div class="box" id="box">你好 世界</div>
// 1) 基本选择器
// 通过标签选择器获取到 div 元素
console.log($('div'))
// 通过 class 类名选择器获取到 .box 元素
console.log($('.box'))
// 通过 id 选择器获取到元素
console.log($('#box'))

2 )??jQuery?的特殊选择器?:?

=>?直接在基本选择器的后面连接使用

??+? :first

????=>?获取到 第一个

??+? :last

????=>?获取到 最后一个

??+? :odd

????=>?获取到索引为?奇数?的所有内容

??+? :even

????=>?获取到索引为?偶数?的所有内容

??+? :eq( 索引 )

????=>?获取到 索引 为指定某一个的

<ul>
  <li>1</li>
  <li>2</li>
  <li>3</li>
  <li>4</li>
  <li>5</li>
</ul>
// 2) 特殊选择器
// :first ( 第一个 )
console.log($('ul > li:first'))
// :last  ( 最后一个 )
console.log($('ul > li:last'))
// :odd   ( 索引为奇数的所有内容 )
console.log($('ul > li:odd'))
// :even  ( 索引为偶数的所有内容 )
console.log($('ul > li:even'))
// :eq(索引) 索引指定为某一个的
// 获取到 索引 第三个
console.log($('ul > li:eq(3)'))

3?)? jQuery?的筛选器?:?

=>?语法:?$('选择器').筛选器( )

=>?对于选择器选择出来的元素集合?,?进行?二次筛选

=>?目的:?为了 链式编程

?(1) first( )

??=>?获取到选择器内的 第一个 元素内容

??console.log($('ul?>?li').first( ))?

(2) last( )

??=>?获取到选择器内的 最后一个 元素内容

??console.log($('ul?>?li').last( ))?

(3) eq(索引)

??=>?获取到选择器内 索引 第几个的内容

??console.log($('ul?>?li').eq(3))?

<ul>
  <li>1</li>
  <li class="a">2</li>
  <li>3</li>
  <span> span </span>
  <li>4</li>
  <li class="b">5</li>
  <li>6</li>
</ul>

?(4)?next(?)

??=>?拿到你获取到的元素的 下一个 兄弟元素

??console.log($('ul?>?span').next())?

(5)?nextAll(?)

??=>?语法1:元素集合.nextAll()

????+?获取到后面 所有 的兄弟元素

????console.log($('ul?>?span').nextAll())?

??=>?语法2:元素集合.nextAll(选择器)

????+?获取到后面所有兄弟元素中满足选择器条件要求的元素

????console.log($('ul?>?span').nextAll('.b'))?

(6)?nextUntil(?)

??=>?语法1:元素集合.nextUntil()

????+?获取到后面的所有兄弟元素

????console.log($('ul?>?span').nextUntil())?

??=>?语法2:元素集合.nextUntil(选择器)

????+?获取到后面的所有兄弟元素,?直到选择器元素为止,?不包含选择器元素

????console.log($('ul?>?span').nextUntil('.b'))?

?(7)?prev(?)

??=>?获取到 上一个 兄弟元素

??console.log($('ul?>?span').prev())?

(8)?prevAll(?)

??=>?语法1:元素集合.prevAll()

????+?获取到前面所有的兄弟元素

????console.log($('ul?>?span').prevAll())?

??=>?语法2:元素集合.prevAll(选择器)

????+?获取到前面所有的兄弟元素中满足选择器要求的元素

????console.log($('ul?>?span').prevAll('.a'))?

(9)?prevUntil(?)

??=>?语法1:元素集合.prevUntil()

????+?获取到前面所有的兄弟元素

????console.log($('ul?>?span').prevUntil())?

??=>?语法2:元素集合.prevUntil(选择器)

????+?获取到前面所有的兄弟元素直到?选择器元素?为止,?不包含选择器元素

????console.log($('ul?>?span').prevUntil('.a'))?

(10)?parent( )

??=>?获取到 元素

??console.log($('ul?>?span').parent())?

(11)?parents( )

??=>?语法1:?元素集合.parents()

????+?逐层获取到所有的结构父级,?直到?html?为止

????console.log($('ul?>?span').parents())?

??=>?语法2:?元素集合.parents(选择器)

????+?逐层获取到结构父级中满足选择器要求的那一个元素

????console.log($('ul?>?span').parents('body'))?

(12)?parentsUntil( )?

??=>?语法1:?元素集合.parentUntil()

????+?逐层获取到所有结构父级,?直到?html?为止

????console.log($('ul?>?span').parentsUntil())?

??=>?语法2:?元素集合.parentUntil(选择器)

????+?逐层获取到所有结构父级,?直到?选择器元素?为止,?不包含选择器元素

????console.log($('ul?>?span').parentsUntil('html'))?

(13)?siblings(?)?

=>?获取自己的所有 兄弟 元素,?不包括自己

? console.log($('span').siblings())?

(14)?find(?)

??=>?语法:?元素集合.find('选择器')

??=>?在该元素的所有后代元素中 查找 满足选择器要求的元素

??console.log($('ul').find('span'))?

(15)?index(?)

??=>?元素集合.index(?)

??=>?返回值:?是该元素在其?html?结构中的 索引 位置

??=>?注意:?不是在元素集合内容的索引位置,?而是在其真实的?html?结构中的 索引 位置


2.? jQuery 操作元素 CSS 样式 :

+?使用?css( )?的方法

+?根据传递不同的参数来做不同的事情

<div style="width: 100px;"></div>
<style>
  div {
    height: 100px;
    background-color: pink;
  }
</style>

参数方式 1 :
+ 语法 : 元素集合.css('样式名')
+ 返回值 : 元素集合内第一个元素的指定样式的值
+ 不管元素的行内和非行内样式 , 都能拿的到?

// 1. 获取样式
// 获取 div 元素的 宽度 / 高度 / 背景颜色
console.log($('div').css('width'))
console.log($('div').css('height'))
console.log($('div').css('background-color'))

参数方式 2 :
+ 语法 : 元素集合.css('样式名', '样式值')
+ 作用 : 给元素集合内所有的元素, 设置样式
+ 注意 : 设置带有单位样式的时候, 可以直接填写数字, 默认使用 px 作为单位?

// 2. 设置样式
$('div').css('width', 300)
$('div').css('height', 300)
$('div').css('opacity', 0.5)

?参数方式 3 :
+ 语法 : 元素集合.css({ ... })
+ 作用 : 给元素集合内所有的元素, 批量设置样式

// 3. 批量设置样式
$('div').css({
  width: 300,
  height: 400,
  backgroundColor: 'red',
  opacity: 0.6,
  float: 'right'
})

3.? jQuery?操作元素类名 :?

<div class="a b c d">我是 div 标签</div>

1. addClass('类名')
? => 语法: 元素集合.addClass('类名')
? => 作用: 给元素集合内所有元素添加类名
? $('div').addClass('box')?

2. removeClass( )
? => 语法: 元素集合.removeClass('类名')
? => 作用: 删除元素集合内的所有元素的某一个类名
? $('div').removeClass('b')??

3. toggleClass( )
? => 语法: 元素集合.toggleClass('类名')
? => 作用: 切换元素集合内所有元素的类名
? $('div').toggleClass('a')??

4. hasClass( )
? => 语法: 元素集合.hasClass('类名')
? => 作用: 判断该元素是否有某一个类名, 返回值是 布尔值
? console.log($('div').hasClass('d'))??


4.? jQuery?操作元素属性 :?

<div id="box" hello="world">我是 div 标签</div>

1 .? 第一套 :?
? ? ? ? + attr( ) 和 removeAttr( )

1-1.?attr( )?获取

??=>?语法:?元素集合.attr('属性名')

??=>?作用:?获取元素集合内第一个元素的该属性对应的值

??=>?返回值:?对应属性的值

??=>?注意:?可以获取到元素标签身上书写的所有属性的值,?

??但是不能获取到?prop( )?方法设置的自定义属性的值

1-2.?attr( )?设置

??=>?语法:?元素集合.attr('属性名',?属性值)

??=>?作用:?给该元素集合内所有元素设置一个属性

??=>?注意:?可以设置 自定义属性,?也可以设置 原生属性

??=>?设置的所有属性,?都直接响应在标签身上

1-3.?removeAttr( )

??=>?语法:?元素集合.removeAttr('属性名')

??=>?作用:?删除元素集合内容所有元素的某一个属性

??=>?注意:?可以删除任何属性,?唯独不能删除?prop( )?设置的自定义属性

+?注意:?一般我们不用这一套方法来操作?原生属性

+?建议:?attr( )?和?removeAttr( )?用来操作 自定义属性

// 1. attr() 和 removeAttr()
// 1-1. attr() 获取
console.log($('div').attr('hello'))
// 1-2. attr() 设置
$('div').attr('abc', 100)
// 1-3. removeAttr()
$('div').removeAttr('abc')

2 .? 第二套
? ? ? ? + prop( ) 和 removeProp( )

??2-1.?prop( )?获取

????=>?语法:?元素集合.prop('属性名')

????=>?作用:?获取元素集合内第一个元素该属性的值

????=>?注意:?只能获取元素的 原生属性,?

????不能获取自定义属性的值,?除非这个自定义属性是用?prop( )?方法设置的

??2-2.?prop( )?设置

????=>?语法:?元素集合.prop('属性名',?'属性值')

????=>?作用:?给元素集合内所有元素设置属性

????=>?注意:?可以设置 原生属性,?也可以设置 自定义属性

????如果你设置的是 原生属性,?直接响应在标签身上,

????如果是 自定义属性,?不会响应在标签身上,

????而是存储在?jquery?获取到的元素对象中

??2-3.?removeProp( )

????=>?语法:?元素集合.removeProp('属性名')

????=>?作用:?给元素集合内所有元素删除属性

????=>?注意:?不能删除 原生属性,

????不能删除?attr( )?设置的 自定义属性

????只能删除?prop( )?方法设置的 自定义属性

??+?注意:?这一套方法一般不用来操作自定义属性,?一般用来操作 原生属性

??+?建议:?prop( )?和?removeProp( )?建议用来操作 原生属性

// 2. prop() 和 removeProp()
// 2-1. prop() 获取
console.log($('div').prop('id'))
// 2-2. prop() 设置
$('div').prop('abc', 100)
// 2-3. removeProp()
$('div').removeProp('abc')

5.? jQuery 绑定事件 :

1. on( ) 方法

1-1. 语法1:
? => 语法: 元素集合.on('事件类型', 事件处理函数)
? => 作用: 给元素集合内容所有元素绑定事件

// 1-1. on 语法1
$('div').on('click', () => console.log('我被点击了'))

1-2. 语法2:
? => 语法: 元素集合.on('事件类型', '选择器', 事件处理函数)
? => 作用: 用来实现事件委托的
? => 事件绑定在元素集合内的元素身上, 但是需要在选择器满足要求的元素身上才可以触发

// 1-2. on 语法2 : 事件委托
// 事件绑定在 div 身上
// 只有点击div 的后代元素 span 才能触发
$('div').on('click', 'span', function() {
	console.log('事件委托')
	// this 就是你点击的这个 span 
	console.log(this)
})

1-3. 语法3:
? => 语法: 元素集合.on('事件类型', 复杂数据类型, 事件处理函数)
? => 作用: 给元素集合内所有元素绑定事件
? => 复杂数据类型是当事件触发的时候, 传递给事件处理函数的参数
? => 在事件处理函数内通过 事件对象.data 获取

// 1-3. on 语法3 : 传递数据
// 给 div 绑定点击事件
// 当点击事件触发的时候, 会把这个对象数据类型当做参数传递给事件对象
// e 内有一个叫做 data 的成员
$('div').on('click', { name: 'jack' }, function (e) {
  // e 是事件对象
  console.log(e)
})

1-4. 语法4:
? => 语法: 元素集合.on('事件类型', '选择器', 参数, 事件处理函数)
? => 作用: 事件委托的同时, 带有参数传递

// 1-4. on 语法4 : 事件委托 + 传递数据
// 事件绑定在 div 身上, 点击 div 的后代元素 span 才能触发
// 'hello world' 就是传递给事件对象的参数
$('div').on('click', 'span', 'hello world', e => {
  console.log(e)
})

1-5. 语法5:
? => 语法: 元素集合.on({
?? ? ?事件类型1: 处理函数1,
?? ? ?事件类型2: 处理函数2
?? ? ?...
?? ?})
? => 作用: 给元素集合内所有元素, 批量绑定事件
? => 注意: 不能进行事件委托和传递参数了

// 1-5. on 语法5: 批量绑定事件
$('div').on({
  click: function () { console.log('点击事件') },
  mouseover: () => console.log('鼠标移入事件'),
  mousemove: () => console.log('鼠标移动事件')
})

2. one( ) 方法

?+ 语法 和 on 方法传递参数的方式一模一样
?? ?+ 唯一的区别, 就是 on 方法绑定的事件可以多次触发
?? ?+ one 方法绑定的事件只能触发一次

// 2-1. one 语法1:
$('div').one('click', function () { console.log('点击事件') })
// 2-2. 事件委托
// 事件绑定给 div
// 你得点击 div 内满足 span 这个标签选择器的元素才能触发
$('div').one('click', 'span', function (e) {
  console.log('你点击的是 span')
  // this 就是你点击的这个 span
  console.log(this)
})

// 2-3. 传递数据
$('div > span').one('click', { name: 'Jack' }, e => {
  console.log(e)
})

// 2-4. 事件委托 + 传递数据
$('div').one('click', 'span', 'hello world', e => {
  console.log(e)
})

// 2-5. 批量绑定事件
$('div > span').one({
  click: () => console.log('点击事件'),
  mouseover: () => console.log('鼠标移入事件'),
  mousemove: () => console.log('鼠标移动事件')
})

3.?off( )?方法

3-1.?元素集合.off(事件类型)

????=>?把该事件类型的所有事件处理函数全部取消

??3-2.?元素集合.off(事件类型,?事件处理函数)

????=>?把改事件类型的某一个事件处理函数解绑

// 3. off()
function handlerA() { console.log('handlerA') }
function handlerB() { console.log('handlerB') }
function handlerC() { console.log('handlerC') }
$('div > span').on('click', handlerA)
$('div > span').on('click', handlerB)
$('div > span').on('click', handlerC)
// 3-1.
$('div > span').off('click')
// 3-2.
$('div > span').off('click', handlerB)

4.?trigger( )?方法

+?用来触发事件的

??+?语法:?元素集合.trigger(事件类型)

// 4. trigger
function handlerA() { console.log('handlerA') }
function handlerB() { console.log('handlerB') }
function handlerC() { console.log('handlerC') }
$('div').on('click', handlerA)
// 触发事件
// 触发一次 li 的点击行为
$('div').trigger('click')

5.?常用的事件函数

+?jQuery?把一些常用的事件类型直接封装成函数,?我们可以直接使用

=>?click( )

=>?mousemove( )

=>?mousemove( )

=>?...

+?以?click?事件为例

+?语法1.?元素集合.click(事件处理函数)

+?语法2.?元素集合.click(参数,?事件处理函数)

=>?用来给事件处理函数传递参数

// 3-1. 事件函数语法1
$('div').click(function () { console.log('绑定了点击事件') })

// 3-2. 事件函数语法2
$('div').click('hello world', e => console.log(e))

6.?特殊事件

+?在?jQuery?里面只有一个特殊事件

??=>?hover?事件

??+?语法:?元素集合.hover(函数1,?函数2)

????=>?函数1?:?会在鼠标移入的时候触发

????=>?函数2?:?会在鼠标移出的时候触发

??+?注意:?如果你只传递一个函数,?那么移入触发?移出也会触发

// 6. hover 事件
$('div').hover(
	function() { console.log('移入了') },
	function() { console.log('移出了') }
)

持续更新中 Loading ...? (#^_^#)?

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 12:39:12  更:2021-07-30 12:39:49 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 14:51:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码