Jquery

你可能听说过jQuery,它名字起得很土,但却是JavaScript世界中使用最广泛的一个库。

江湖传言,全世界大约有80~90%的网站直接或间接地使用了jQuery。鉴于它如此流行,又如此好用,所以每一个入门JavaScript的前端工程师都应该了解和学习它。

jQuery这么流行,肯定是因为它解决了一些很重要的问题。实际上,jQuery能帮我们干这些事情:

  • 消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,编写AJAX等代码;

  • 简洁的操作DOM的方法:写$('#test')肯定比document.getElementById('test')来得简洁;

  • 轻松实现动画、修改CSS等各种操作。

jQuery的理念“Write Less, Do More“,让你写更少的代码,完成更多的工作!

jQuery版本

目前jQuery有1.x和2.x两个主要版本,3.x的版本也出来了,区别在于2.x移除了对古老的IE 6、7、8的支持,因此2.x的代码更精简。选择哪个版本主要取决于你是否想支持IE 6~8。

jQuery官网可以下载最新版本。jQuery只是一个jquery-xxx.js文件,但你会看到有compressed(已压缩)和uncompressed(未压缩)两种版本,使用时完全一样,但如果你想深入研究jQuery源码,那就用uncompressed版本。

使用jQuery

使用jQuery只需要在页面的<head>引入jQuery文件即可:

https://code.jquery.com/jquery-3.2.1.min.js

下载该文件,放入指定位置:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>ajax</title>
<script src="/static/js/jquery-3.2.1.min.js"></script>
</head>
<body>
<script>
'use strict';
console.log("jQuery版本: " + $.fn.jquery);
</script>
</body>
</html>

 

结果:

 

我搞了一个3.x的版本,笔者并非是专业的前端开发人员,这里也就不介绍1.x,2.x,3.x的区别了,可自行去网上搜索。

关于Jquery是否还值得去学习这个问题,我想还是有必要的,存在即合理。

jQuery 库 - 特性

jQuery 是一个 JavaScript 函数库。

jQuery 库包含以下特性:

  • HTML 元素选取
  • HTML 元素操作
  • CSS 操作
  • HTML 事件函数
  • JavaScript 特效和动画
  • HTML DOM 遍历和修改
  • AJAX
  • Utilities

 

jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数。

可以通过下面的标记把 jQuery 添加到网页中:

<head>
<meta charset="utf-8" />
<title>ajax</title>
<script src="/static/js/jquery-3.2.1.min.js"></script>
</head>

 

$符号

$是著名的jQuery符号。实际上,jQuery把所有的功能全部封装在一个全局变量jQuery中,而$也是一个合法的变量名,他是变量jQuery的别名:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery</title>
<script src="/static/js/jquery-3.2.1.min.js"></script>
</head>
<body>
<script>
'use strict';
console.log(window.jQuery);//jQuery(selector, context)
console.log(window.$);// jQuery(selector, context)
console.log($ === jQuery);//true
console.log(typeof($));'function'
</script>
</body>
</html>

 

结果:

$本质上就是一个函数,但是函数也是对象,于是$除了可以直接调用外,也可以有很多其他属性。

注意,你看到的$函数名可能不是jQuery(selector, context),因为很多JavaScript压缩工具可以对函数名和参数改名,所以压缩过的jQuery源码$函数可能变成a(b, c)

绝大多数时候,我们都直接用$(因为写起来更简单嘛)。但是,如果$这个变量不幸地被占用了,而且还不能改,那我们就只能让jQuery$变量交出来,然后就只能使用jQuery这个变量:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>jQuery</title>
<script src="/static/js/jquery-3.2.1.min.js"></script>
</head>
<body>
<script>
'use strict';
console.log($);
console.log(jQuery.noConflict());
console.log($);
console.log(jQuery);
</script>
</body>
</html>

 

结果:

这种黑魔法的原理是jQuery在占用$之前,先在内部保存了原来的$,调用jQuery.noConflict()时会把原来保存的变量还原。

 

posted @ 2017-08-21 15:16  ocean_boy  阅读(131)  评论(0编辑  收藏  举报