jQuery简介

 

jQuery是一套跨浏览器JavaScript,简化HTMLJavaScript之间的操作。由约翰·雷西格John Resig)在20061月的BarCamp NYC上发布第一个版本。目前是由Dave Methvin领导的开发团队进行开发。全球前10,000个访问最高的网站中,有65%使用了jQuery,是目前最受欢迎的JavaScript库。

 

特色

jQuery有下列特色:

使用多浏览器开源选择器引擎SizzlejQuery项目的派生产品)进行DOM元素选择

基于CSS选择器的DOM操作,使用元素的名称和属性(如idclass)作为选择DOM中节点的条件

  • 事件
  • 特效和动画
  • Ajax
  • DeferredPromise对象来控制异步处理
  • JSON解析
  • 通过插件扩展
  • 工具函数,如特征检测
  • 现代浏览器中本地的兼容性方法,但对于旧版浏览器需要后备(fallback)方法,比如inArray()each()
  • 多浏览器(不要与跨浏览器混淆)支持

 

浏览器支持

  • jQuery 3.0及以后版本支持当前−1版本FirefoxChromeSafariEdge(就是说当前稳定版本以及当前稳定版本之前的一个版本),另外还支持Internet Explorer 9以后的IE版本。在移动端支持iOS 7+Android 4.0+
  • 加载jQuery

jQuery库是包含所有公共DOM、事件、效果和Ajax函数的一个JavaScript文件。可以通过链接到本地副本或公共服务器提供的许多副本之一把jQuery包含在网页中。jQuery有一个由MaxCDN托管的内容分发网络CDN)。 Google和微软也托管了jQuery

<script src="jquery.js"></script>

也可以直接从CDN中加载jQuery

<script
  src="https://code.jquery.com/jquery-3.3.1.min.js"
  integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="
  crossorigin="anonymous"></script>

 

使用风格

jQuery有两种使用风格:

  • 通过jQuery对象的工厂方法$函数。这些函数通常称作命令可以链接,因为它们都返回jQuery对象。
  • 通过$.开头的函数。这些是工具函数,它们不直接作用于jQuery对象。
  • jQuery中访问和操作多个DOM节点通常从用CSS选择器字符串调用$函数开始。这会返回一个引用HTML页面中所有匹配元素的jQuery对象。比如$("div.test"),会返回一个拥有class test的所有div元素的jQuery对象。可以通过调用返回的jQuery对象或节点本身的方法来操作这个节点集。

 

无冲突模式

jQuery还有.noConflict()模式,这会释放对$的控制。如果其他的库也使用$作为标识符的话,这个模式会比较有用。在无冲突模式下,开发人员可以使用jQuery替代$而不会缺失任何功能。

 

典型的代码开头

通常,jQuery是通过将初始化代码和事件处理函数放入$(handler)中来使用的。当浏览器构建DOM并发送加载事件时触发。

$(function () {
   // 这个匿名函数是页面加载时要调用的第一个函数。
   // jQuery代码,事件处理回调写在这里
});

或者

$(fn); // 在其他地方定义的名为fn的函数,是页面加载时要调用的第一个函数。

或者我们也可以使用

$(document).ready(function(){
   // 这是页面加载时要调用的第一个函数。
   // jQuery代码,事件处理回调写在这里
});

由于历史原因,$(document).ready(callback)已经成为DOM就绪时运行代码的实质性标志。但jQuery 3.0以后,鼓励开发人员使用更简短的$(handler)标志。

对尚未加载的元素进行事件处理的回调函数可以作为匿名函数.ready()内部注册。这些事件处理函数只会在触发事件时被调用。例如,下面的代码添加了一个,用于在img图像元素上单击鼠标事件的处理函数。

$(function () {
   $('img').on('click', function () {
      // 处理页面中任何img元素上的click事件
   });
});

 

链接(Chaining

jQuery命令通常返回一个jQuery对象,因此命令可以链接:

$('div.test')
  .add('p.quote')
  .addClass('blue')
  .slideDown('slow');

这行代码找到了所有class属性为testdiv标签,以及所有class属性为quotep标签的并集,对于所有匹配的元素都增加一个blueclass属性,并用一个动画增加了它们的高度。函数$add影响匹配的元素有哪些,而addClassslideDown影响了引用的节点。

一些jQuery函数返回特定的值(例如$('#input-user-email').val())。在这些情况下,由于该值没有引用jQuery对象,链接将不起作用。

 

创建新的DOM元素

除了通过jQuery对象层次结构访问DOM节点外,如果作为参数传递给$()的字符串看起来像HTML,也可以创建新的DOM元素。例如,这行代码找到IDcarmakesHTML select元素,并会增加一个value属性为"VAG"、文字为"Volkswagen"option元素:

$('select#carmakes')
  .append($('<option />')
    .attr({value:"VAG"})
    .append("Volkswagen"));

 

工具函数

带有$.前缀的jQuery函数是工具函数,或者说是影响全局属性和行为的函数。下面的例子使用了函数each()来遍历数组:

$.each([1,2,3], function() {
  console.log(this + 1);
});

这会将“2”“3”“4”写入控制台。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值