1. jQuery概述
1.1 JavaScript库
仓库:可以把很多东西放到这个仓库里面,找东西只需要到仓库里面查找到就可以了
JavaScript库:即library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate、hide、show,比如获取元素等
简单理解:就是一个JS文件,里面对我们原生js代码进行了封装,存放到里面。这样我们可以快速高效的使用这个封装好的功能了
比如jQuery,就是为了快速方便的操作DOM,里面基本都是函数(方法)
jQuery称为JS库,而以前学的JS称为原生JS
常见的JavaScript库
-
jQuery
-
Prototype
-
YUI
-
Dojo
-
Ext JS
-
移动端的zepto
这些库都是对原生JavaScript的封装,内部都是用JavaScript实现的,我们主要学习的是jQuery
1.2 jQuery的概念
jQuery是一个快速、简洁的JavaScript库,其设计宗旨是“Write Less,Do More”,即倡导写更少的代码,做更多的事情
j就是JavaScript;Query查询:意思就是查询js,把js中的DOM操作做了封装,我们可以快速的查询使用里面的功能
jQuery封装了JavaScript常用的功能代码,优化了DOM操作、事件处理、动画设计和Ajax交互
学习jQuery本质:就是学习调用这些函数(方法)
jQuery出现的目的是加快前端人员的开发速度,可以非常方便的调用和使用它,从而提高开发效率
1.3 jQuery的优点
- 轻量级。核心文件才几十kb,不会影响页面加载速度
- 跨浏览器兼容。基本兼容了现在主流的浏览器
- 链式编程、隐式迭代
- 对事件、样式、动画支持,大大简化了DOM操作
- 支持插件扩展开发。有着丰富的第三方插件:例如树形菜单、日期控件、轮播图等
- 免费、开源
2. jQuery的基本使用
2.1 jQuery的下载
官方网址:https://jQuery.com
版本:
- 1x:兼容IE 678等低版本浏览器,官网不再更新
- 2x:不兼容IE678等低版本浏览器,官网不再更新
- 3x:不兼容IE678等低版本浏览器,是官方主要更新维护的版本
各个版本的下载:https://code.jquery.com/
我们用production,是压缩的,更小一些
把代码复制下来,新建一个文件存储就可以
2.2 jQuery的使用步骤
- 引入jQuery文件
- 使用即可
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
$('div').hide();
</script>
</body>
div被隐藏
2.3 jQuery的入口函数
在原生js里,有两种等待页面加载完成的方法,load和DOMContentLoaded
$ (function () {
... //此处是页面DOM加载完成的入口
});
$ (document).ready (function () {
... //此处是页面DOM加载完成的入口
});
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<script>
// 等着页面dom加载完毕再去执行js代码
// $(document).ready(function () {
// $('div').hide();
// })
$(function () {
$('div').hide();
})
</script>
<div></div>
</body>
- 等着DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成,jQuery帮我们完成了封装
- 相当于原生js的DOMContentLoaded
- 不同于原生js中的load事件,lo ad事件是等页面文档、外部的js文件、css文件、图片加载完成才执行内部代码
- 更推荐使用第一种方式
2.4 jQuery的顶级对象$
-
$是jQuery的别称,在代码中可以使用jQuery代替$,但一般为了方便,通常都直接使用$
-
$是jQuery的顶级对象,相当于原生JavaScript中的window,把元素利用$包装成jQuery对象,就可以调用jQuery的方法
<script>
// 等着页面dom加载完毕再去执行js代码
// $(function () {
// $('div').hide();
// })
//等价于
jQuery(function () {
jQuery('div').hide();
})
</script>
$符号可以把元素包装成jQuery对象,就可以使用jQuery的方法
比如$('div'),把div包装成了jQuery对象,就可以使用jQuery的hide方法
2.5 jQuery对象和DOM对象
用原生JS获取来的对象就是DOM对象
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 1. DOM 对象: 用原生js获取过来的对象就是DOM对象
var mydiv = document.querySelector('div');
console.dir(mydiv);
</script>
</body>
jQuery方法获取的元素就是jQuery对象
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 2. jQuery对象: 用jquery方式获取过来的对象是jQuery对象。 本质:通过$把DOM元素进行了包装
$('div'); //这是一个jQuery对象
console.dir($('div'));
</script>
</body>
jQuery对象本质是:利用$对DOM对象包装后产生的对象(伪数组形式存储)
<style>
div {
width: 100px;
height: 100px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 3. jQuery 对象只能使用 jQuery 方法,DOM 对象则使用原生的 JavaScirpt 属性和方法
mydiv.style.display = 'none';
$('div').hide();
</script>
</body>
2.5.1 DOM对象和jQuery对象之间相互转换
DOM对象与jQuery对象之间是可以相互转换的
因为原生js比jQuery更大,原生的一些属性和方法jQuery没有给我们封装,要想使用这些属性和方法需要把jQuery对象转换为DOM对象才能使用
就比如说,原生js中有视频的播放方法play,jQuery中没有,所以这时要使用原生js,但又由于jQuery使用起来比较方便,所以要将原生js转换成jQuery
1. DOM对象转换为jQuery对象:$(DOM对象)
注意不需要引号
$('div')
2.jQuery对象转换为DOM对象(两种方式)
$('div')[index] index是索引号
$('div').get(index) index是索引号
<body>
<video src="./mov.mp4" muted></video>
<script>
// 1. DOM对象转换为 jQuery对象
// (1)我们直接获取视频,得到的是jQuery对象
$('video');
// (2)我们已经使用原生js 获取过来DOM对象
var myvideo = document.querySelector('video');
// $(myvideo).play(); 不可以这么写 因为jQuery里没有play这个方法
// myvideo.play(); //DOM元素配合muted 实现静音自动播放
// 2. jQuery对象转换为DOM对象
$(myvideo)[0].play();
$(myvideo).get(0).play();
</script>
</body>