相关文章推荐

jQuery 概述

jQuery 是一个快速、简洁的 JavaScript 库,其设计的宗旨是“write Less,Do More”,即倡导写更少的代码,做更多的事情。

在这个库中有很多预先定义好的函数,对 JavaScript 中的 DOM 操作、事件处理、动画设计和 Ajax 交互做了优化封装,调用这些函数可以加快开发速度,提高开发效率。

jQuery 入口函数

当 DOM 结构渲染完毕(不必等到所有外部资源加载完成)即可执行入口函数里面的内部代码,相当于原生 JavaScript 中的 DOMContentLoaded 事件(原生 JavaScript 中的 load 事件是等页面文档、外部的 JS 文件、CSS 文件、图片加载完毕才执行内部代码)。利用入口函数,在任意位置书写的 JavaScript 代码都可以获取到完整的 DOM 对象。

1
2
3
4
5
6
$(function () {
... // 此处是页面 DOM 加载完成的入口
}) ;
$(document).ready(function(){
... // 此处是页面 DOM 加载完成的入口
});

jQuery 的顶级对象 $

$ 是 jQuery 的别称,在代码中可以使用 jQuery 代替 $ ,但一般为了方便,通常都直接使用 $ $ 是 jQuery 的顶级对象, 地位相当于原生 JavaScript 中的 window

利用原生 JavaScript ( getElementById() querySelector() 等)获取到的对象就是 DOM 对象。

利用 $('selector') 获取的元素就是 jQuery 对象(集合),本质是一个伪数组集合,其中存储了选择符匹配到的所有 DOM 对象。

DOM 对象与 jQuery 对象之间是可以相互转换的。

将 DOM 对象转换为 jQuery 对象: $(DOMElement) 。只有 jQuery 对象才能使用 jQuery 对象特有的属性和方法,利用 $ 把 DOM 对象包装成 jQuery 对象,这样就可以调用 jQuery 对象特有的属性和方法。

1
2
var ele = document.querySelector("div");
$(ele).hide();

但是普通 DOM 对象的一些属性和方法 jQuery 没有给我们封装到 jQuery 对象中,如果要想使用这些属性和方法需要把 jQuery 对象转换为普通 DOM 对象才能使用。jQuery 对象转换为 DOM 对象有下面两种方式:

1
2
$("div")[index]; // index 是索引号, jQuery 对象实际上是一个存储着 DOM 对象的伪数组集合
$("div").get(index) // index 是索引号

jQuery 选择器

原生 JavaScript 获取元素方式可能存在兼容性问题,jQuery 顶级对象使用类似 CSS 选择器的方式快速获取元素,并且解决了兼容性问题。

jQuery 基础选择器:

jQuery 层级选择器:

jQuery 筛选选择器:

注意:和 CSS 伪类选择器有些许区别。

jQuery 筛选方法:

:checked 选择器:匹配所有被选中的表单元素(复选框、单选框等)。

jQuery 排他思想和链式编程

1
2
3
4
$(this).css("color", "red");  			// 给当前元素设置样式
$(this).siblings().css("color", ""); // 清楚其余兄弟元素的样式

$(this).css("color", "red").siblings().css("color", ""); // 链式编程

jQuery 操作元素样式

jQuery 对象没有 style 属性,因此不能直接通过 style 属性来设置样式,而是通过 jQuery 对象的 css() 方法来设置样式。 jQuery 对象具有隐式迭代特性:会自动遍历 jQuery 对象中的伪数组集合,一次调用即可同时修改其伪数组中所有 DOM 元素的样式。

css() 方法参数只写样式的属性名,则返回的是该样式的属性值:

1
$("div").css("color");

css() 方法参数是样式的属性名和属性值,用逗号分隔,设置一组样式。属性名必须加引号,属性值如果是数字可以不用跟单位和引号。

1
$("div").css("width", 300);

css() 方法参数还可以是键值对形式的 JavaScript 对象,用来一次设置多组样式。属性名和属性值用冒号隔开,键值对中的 CSS 属性名使用驼峰命名法,比如用 marginLeft 代替 margin-left 。属性名可以不用加引号,属性值如果是数字可以不用跟单位和引号。

1
2
3
4
5
$("div").css({ 
width: 400,
height: 400,
backgroundColor: "red"
});

除了 css() 方法还可以通过修改元素的类名从而匹配不同的选择器。类似于 DOM 对象中的 classList 属性,jQuery 对象也有三个方法来修改类名:

1
2
3
$("div").addClass("current");		// 添加类
$("div").removeClass("current"); // 移除类
$("div").toggleClass("current"); // 切换类

jQuery 动画效果

基本显示隐藏效果:

  • show([speed,[easing],[fn]]) :显示指定的元素。

  • hide([speed,[easing],[fn]]) :隐藏指定的元素。

  • toggle([speed,[easing],[fn]]) :在显示和隐藏之间切换,如果元素是可见的,则切换为隐藏的;如果元素是隐藏的,则切换为可见的。

    滑动显示隐藏效果:

  • slideDown([speed,[easing],[fn]]) :下滑显示指定的元素。
  • slideUp([speed,[easing],[fn]]) :上滑隐藏指定的元素。
  • slideToggle([speed,[easing],[fn]]) :滑动切换指定的元素。
  • 淡入淡出效果:

  • fadeIn([speed,[easing],[fn]]) :淡入显示指定的元素。
  • fadeOut([speed,[easing],[fn]]) :淡出隐藏指定的元素。
  • fadeToggle([speed,[easing],[fn]]) :淡入淡出切换指定的元素。
  • fadeTo(speed,opacity,[easing],[fn]]) :渐进地调整元素到指定不透明度。 speed opacity 参数值必须写,不透明度取值 0~1 之间,值越小越透明,值为 0 代表完全透明显示底层元素的颜色,值为 1 则是完全不透明即正常显示。
  • 自定义动画:

  • animate(params,[speed],[easing],[fn]) :创建自定义动画,以 JavaScript 对象键值对的形式指定想要更改的样式属性,通过 params 参数传递,样式属性就会从当前的值渐变到指定的值。属性名可以不用带引号,如果对应的 CSS 属性带有连字符则需要采取驼峰命名法,比如用 marginLeft 代替 margin-left
  • 上面动画函数中的出现的三个参数描述如下:

  • speed :三种预定速度之一的字符串( "slow" "normal" 或者 "fast" )或表示动画时长的毫秒数值(不需要带单位,如:1000)。
  • easing :来指定切换效果,默认是 "swing" ,可用参数 "linear"
  • fn :回调函数,在动画完成时执行该函数,每个元素执行一次。
  • 停止动画:

  • stop() :动画效果一旦触发就会执行,如果同时触发多个动画效果,就造成动画效果排队执行。 stop() 方法用于手动停止该元素正在运行的动画效果,并且使队列中的其他动画直接完成。 stop() 通常写到动画效果的前面: $(this).stop().fadeIn(); ,即先结束其他动画,再开始新的动画效果。
  • jQuery 操作元素属性

     
    推荐文章