关于jQuery

218 阅读2分钟

jQuery是啥

  • jQuery 中文文档:jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。

  • 维基百科:jQuery是一套跨浏览器JavaScript,简化HTML与JavaScript之间的操作。

  • MDN:jQuery 是一个着重简化 DOM 操作,AJAX 调用和事件处理的 JavaScript

总的来说就是jQuery就是JavaScript的一个库,它有一些功能可以使JavaScript用起来更加方便的工具

我从jQuery学到了什么

jQuery封装了一些函数,暴露出一些API可以对选中的元素进行操作。可以通过选择器得到被选中的元素,然后通过jQuery暴露出来的API对选中的元素进行操作

获取元素

最直接的就是通过CSS选择器选择我们想要的当前元素:

  $(document)                         //选择整个文档对象

  $('#Id')                            //选择ID为Id的网页元素

  $('input[name=first]')              // 选择name属性等于first的input元素

如果我们选择的有好多元素同时符合条件,jQuery还提供各种强大的过滤器,对结果集进行筛选,缩小选择结果,这种方法还包括可以在DOM树上进行移动,找到该元素的家属:

   $('div').has('p'); // 选择包含p元素的div元素

  $('div').not('.myClass'); //选择class不等于myClass的div元素

  $('div').filter('.myClass'); //选择class等于myClass的div元素

  $('div').first(); //选择第1个div元素

   $('div').next('p'); //选择div元素后面的第一个p元素

  $('div').parent(); //选择div元素的父元素

  $('div').siblings(); //选择div的同级元素

链式操作

jQuery的链式操作就是可以选中网页元素以后,对它进行一系列操作,并且所有操作可以连接在一起,以链条的形式写出来,比如:

$('div').find('h3').eq(2).html('Hello');

分解开来,就是下面这样:

$('div')             //找到div元素
   .find('h3')       //选择其中的h3元素
   .eq(2)            //选择第3个h3元素
   .html('Hello');   //将它的内容改为Hello

jQuery的每一步操作返回的都是一个对象,API对象或者是数组,可以连在一起实现链式调用。

创建元素

jQuery中创建元素非常简单,直接把新元素写成字符串的形式传入jQuery的构造函数就可以了

$('<p>Hello</p>');

$('<li class="new">new list item</li>');

$('ul').append('<li>list item</li>');

移动元素

假定我们选中了一个div元素,需要把它移动到p元素后面。

第一种方法是使用.insertAfter(),把div元素移动p元素后面:

 $('div').insertAfter($('p'));

第二种方法是使用.after(),把p元素加到div元素前面:

$('p').after($('div'));

表面上看,这两种方法的效果是一样的,唯一的不同似乎只是操作视角的不同。但是实际上,它们有一个重大差别,那就是返回的元素不一样。第一种方法返回div元素,第二种方法返回p元素。你可以根据需要,选择到底使用哪一种方法。

修改元素的属性

.attr()获取匹配的元素集合中的第一个元素的属性的值。设置每一个匹配元素的一个或多个属性。

getter/setter

jQuery设计模式

  • 不用new的构造函数
  • 重载 $(支持多个多种参数)
  • 闭包隐藏细节
  • 适配器,针对不同浏览器使用不同代码
  • 采用了别名,进行缩写

为什么要学jQuery

  • 简单、经典
  • 是目前前端最长寿的库,是世界上使用最广泛的库
  • 通过jQuery学习很多使用、便捷的封装技巧
  • 为Vue/React打下基础

所以,虽然jQuery过时了,但是,还是很值得学习的,没有谁规定学会就得用啊,只是让后续的工作更便捷一些


本文参考以及学习资料: