一、JavaScript库
1.仓库
可以把很多东西放到这个仓库里面。找东西只需要到仓库里面查找到就可以了。
2. JavaScript库
即 library,是一个封装好的特定的集合(方法和函数)。从封装一大堆函数的角度理解库,就是在这个库中,封装了很多预先定义好的函数在里面,比如动画animate、hide、show,比如获取元素等。简单理解︰就是一个JS文件,里面对我们原生js代码进行了封装,存放到里面。这样我们可以快速高效的使用这些封装好的功能了。
比如jQuery,就是为了快速方便的操作DOM,里面基本都是函数(方法)。
3. 常见的JavaScript库
jQuery
Prototype
YUI
Dojo
Ext JS
移动端的zepto
这些库都是对原生JavaScript的封装,内部都是用JavaScript实现的,我们主要学习的是jQuery,
二、jQuery
1. 概念
jQuery是一个快速、简洁的JavaScript库,其设计的宗旨是“wrilte Less , Do More”,即倡导写更少的代码,做更多的事情。
j就是JavaScript; Query查询;意思就是查询js,把js中的DOM操作做了封装,我们可以快速的查询使用里面的功能。
jQuery封装了JavaScript常用的功能代码,优化了DOM操作、事件处理、动画设计和Ajax交互。学习jQuery本质:就是学习调用这些函数(方法)。
jQuery 出现的目的是加快前端人员的开发速度,我们可以非常方便的调用和使用它,从而提高开发效率。
2. 优点
轻量级。核心文件才几十kb,不会影响贞面加载速度
跨浏览器兼容。基本兼容了现在主流的浏览器
链式编程.隐式迭代
对事件、样式、动画支持,大人简化了DOM操作
支持插件扩展开发。有着丰富的第三方的插件,例如∶树形菜单、日期控件、轮播图等
免费、开源
3. 下载和使用
https://jquery.com/
版本:
1x︰兼容IE 678等低版本浏览器,官网不再更新
2x∶不兼容IE678等低版本浏览器,官网不再更新
3x:不兼容E678等低版本浏览器,是官方主要更新组扩的版本



<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<script src="./jquery.min.js"></script>
</head>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 隐藏盒子
$('div').hide();
</script>
</body>
</html>
三、jQuery的入口函数
方式一:
$(document ).ready(function(){
... //此处是页面DOM载完的入口
}) ;
方式二:
$(function (){
... //此处是页面DOM加载完成的入口
}) ;
1.等看DOM结构渲染完毕即可执行内部代码,不必等到所有外部资源加载完成,jQuery帮我们完成了封装。
2.相当于原生js 中的 DOMContentLoaded。
3.不同于原生js 中的 load事件是等页面文档、外部的js文件、css文件、图片加载完毕才执行内部代码。
4.更推荐使用第二种方式。
<script src="./jquery.min.js"></script>
</head>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<!-- 原生JS:先有DOM元素(div)才能操作元素(script) -->
<!-- 所以如下所示,先script后div是不对的,必须等页面DOM加载完后才能执行js代码 -->
<!-- <script>
// 隐藏盒子
$('div').hide();
</script>
<div></div> -->
<!-- jquery中解决方法——入口函数:等页面DOM加载完再去执行JS代码 -->
<script>
// 方式一:
// $(document).ready(function(){
// $('div').hide();
// })
// 方式二:
$(function(){
$('div').hide();
})
</script>
<div></div>
</body>
四、jQuery的顶级对象$
1. $是jQuery的别称,在代码中可以使用jQuery代替$,但一般为了方便,通常都直接使用$。
2. $是jQuery的顶级对象,相当于原生JavaScript中的window。把元素利用$包装成jQuery对象,就可以调用jQuery的方法。
<script src="./jquery.min.js"></script>
</head>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 1. $ 是jquery的别称
// 方式一:
// jQuery(function(){
// jQuery('div').hide();
// })
// 方式二:(常用)
$(function(){
$('div').hide();
})
// 2. $ 是jQuery的顶级对象
</script>
</body>
五、jQuery对象和DOM对象
1. DOM对象
用原生JS获取过来的对象就是DOM对象
var myDiv = document.querySelector('div'); // myDiv是DOM对象
2. jQuery对象
用jquery方式获取过来的对象时jQuery对象。
本质:利用$把DOM对象包装后产生的对象(伪数组形式存储)
$('div'); //$('div')是一个jQuery对象
3. 两者的方法不能混用
jQuery对象只能使用jQuery方法,DOM对象只能使用原生的JS属性和方法
myDiv.style.display='none'; //DOM对象隐藏
$('div').hide(); //jQuery对象隐藏
<script src="./jquery.min.js"></script>
</head>
<style>
div {
width: 200px;
height: 200px;
background-color: pink;
}
</style>
<body>
<div></div>
<script>
// 1. DOM对象:用原生JS获取过来的对象就是DOM对象
var myDiv = document.querySelector('div'); // myDiv是DOM对象
console.dir(myDiv);
// 2. jQuery对象:用jquery方式获取过来的对象时jQuery对象。本质:利用$把DOM对象包装后产生的对象(伪数组形式存储)
$('div'); //$('div')是一个jQuery对象
console.dir($('div'));
// 3. jQuery对象只能使用jQuery方法,DOM对象只能使用原生的JS属性和方法
// myDiv.style.display='none'; //DOM对象隐藏
$('div').hide(); //jQuery对象隐藏
</script>
</body>
4. 两者之间的相互转换
DOM对象与jQuery对象之间是可以相互转换的。
因为原生js 比 jQuery更大,原生的一些属性和方法jQuery没有给我们封装.要想使用这些属性和方法需要把jQuery对象转换为DOM对象才能使用。
4.1 DOM对象转换为jQuery对象∶$(DOM对象)
$('div')
4.2 jQuery对象转换为DOM对象(两种方式)
$('div')[lirldex] index是索引号
$(div').get(index) index是索引号
<script src="./jquery.min.js"></script>
</head>
<body>
<video src="video.mp4"></video>
<script>
// 1. DOM对象转换为jQuery对象
// 情况一:我们直接获取视频,得到就是jQuery对象
$('video');
// 情况二:已经使用原生JS获取了DOM对象
var myvideo = document.querySelector('video');
//$(myvideo)将DOM对象转换为jQuery对象
// $(myvideo).play; //出错:jQuery里没有play方法
// 2. jQuery对象转换为DOM对象
// myvideo.play(); // 原生JS里才有play方法
// 转换方法一:
$('video')[0].play()
// 转换方法二:
$('video').get(0).play()
</script>
</body>