1 jQuery 简介

jQuery 是一个“写的更少,但做的更多”的轻量级 JavaScript 库。

1.1 jQuery 库 - 特性

jQuery 是一个 JavaScript 函数库。
jQuery 库包含以下特性:

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

jQuery 库位于一个 JavaScript 文件中,其中包含了所有的 jQuery 函数。可以通过下面的标记把 jQuery 添加到网页中:

1
2
3
<head>
<script type="text/javascript" src="jquery.js"></script>
</head>

2. jQuery 语法

jQuery 语法是为 HTML元素的选取编制的,可以对元素执行某些操作。

基础语法是:$(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)“查询”和“查找” HTML 元素
  • jQuery 的 action() 执行对元素的操作

3. jQuery 效果

  1. 隐藏和显示
    1
    2
    3
    4
    5
    $(selector).hide(speed,callback);
    $(selector).show(speed,callback);
    $(selector).toggle(speed,callback); //切换 hide() 和 show() 方法。
    可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
    可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
  2. 淡入淡出
    1
    2
    3
    4
    $(selector).fadeIn(speed,callback); //jQuery fadeIn() 用于淡入已隐藏的元素。
    $(selector).fadeOut(speed,callback); //jQuery fadeOut() 方法用于淡出可见元素。
    $(selector).fadeToggle(speed,callback); //jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。如果元素已淡出,则 fadeToggle() 会向元素添加淡入效果。如果元素已淡入,则 fadeToggle() 会向元素添加淡出效果。
    $(selector).fadeTo(speed,opacity,callback); //jQuery fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。
  3. 滑动
    1
    2
    3
    $(selector).slideDown(speed,callback); //jQuery slideDown() 方法用于向下滑动元素。
    $(selector).slideUp(speed,callback); //jQuery slideUp() 方法用于向上滑动元素。
    $(selector).slideToggle(speed,callback); //jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。如果元素向下滑动,则 slideToggle() 可向上滑动它们。如果元素向上滑动,则 slideToggle() 可向下滑动它们。
  4. 动画
    1
    2
    3
    $(selector).animate({params},speed,callback);   //jQuery animate() 方法用于创建自定义动画。
    默认情况下,所有 HTML 元素的位置都是静态的,并且无法移动。如需对位置进行操作,记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute。
    <div style="background:#98bf21;height:100px;width:100px;position:absolute;">
  5. 停止动画
    1
    $(selector).stop(stopAll,goToEnd);  //jQuery stop() 方法用于停止动画或效果,在它们完成之前。

    4. jQuery - 获得内容和属性

    4.1 jQuery DOM 操作

    jQuery 中非常重要的部分,就是操作 DOM 的能力。jQuery 提供一系列与 DOM 相关的方法这使访问和操作元素和属性变得很容易。

提示:DOM = Document Object Model(文档对象模型)

  1. 获得内容 - text()、html() 以及 val()
  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值
  1. 获取属性 - attr()
    1
    2
    3
    $("button").click(function(){
    alert($("#w3s").attr("href"));
    });
  2. jQuery - 添加元素
  • append() - 在被选元素的结尾插入内容
  • prepend() - 在被选元素的开头插入内容
  • after() - 在被选元素之后插入内容
  • before() - 在被选元素之前插入内容
  1. jQuery - 删除元素
  • remove() - 删除被选元素(及其子元素)
  • jQuery remove() 方法也可接受一个参数,允许您对被删元素进行过滤。
    该参数可以是任何 jQuery 选择器的语法
  • empty() - 从被选元素中删除子元素
  1. jQuery - 获取并设置 CSS 类
  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  1. jQuery - css() 方法
  • css() 方法设置或返回被选元素的一个或多个样式属性。
    1
    2
    3
    4
    5
    6
    返回 CSS 属性
    $("p").css("background-color"); //设置指定的 CSS 属性
    设置 CSS 属性
    $("p").css("background-color","yellow");
    设置多个 CSS 属性
    $("p").css({"background-color":"yellow","font-size":"200%"});
  1. jQuery - 尺寸
  • width(param) width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。 param :设置值
  • height() height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
  • innerWidth() innerWidth() 方法返回元素的宽度(包括内边距)。
  • innerHeight() innerHeight() 方法返回元素的高度(包括内边距)。
  • outerWidth() outerWidth() 方法返回元素的宽度(包括内边距和边框)。
  • outerHeight() outerHeight() 方法返回元素的高度(包括内边距和边框)。

5. jQuery 遍历

  1. jQuery 遍历,意为“移动”,用于根据其相对于其他元素的关系来“查找”(或选取)HTML元素。以某项选择开始,并沿着这个选择移动,直到抵达您期望的元素为止。

1
2
3
4
5
6
7
- <div>> 元素是 <ul> 的父元素,同时是其中所有内容的祖先
- <ul> 元素是 <li> 元素的父元素,同时是 <div> 的子元素
- 左边的 <li> 元素是 <span> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
- <span> 元素是 <li> 的子元素,同时是 <ul> 和 <div> 的后代。
- 两个 <li> 元素是同胞(拥有相同的父元素)。
- 右边的 <li> 元素是 <b> 的父元素,<ul> 的子元素,同时是 <div> 的后代。
- <b> 元素是右边的 <li> 的子元素,同时是 <ul> 和 <div> 的后代。
  1. 向上遍历 DOM 树
  • parent() 方法返回被选元素的直接父元素
  • parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。
  • parentsUntil() 方法返回介于两个给定元素之间的所有祖先元素。
  1. jQuery 遍历 - 后代
  • children() 方法返回被选元素的所有直接子元素。该方法只会向下一级对 DOM 树进行遍历。
  • find() 方法返回被选元素的后代元素,一路向下直到最后一个后代。
  1. jQuery 遍历 - 同胞
  • siblings() 方法返回被选元素的所有同胞元素。
  • next() 方法返回被选元素的下一个同胞元素。
  • nextAll() 方法返回被选元素的所有跟随的同胞元素。
  • nextUntil() 方法返回介于两个给定参数之间的所有跟随的同胞元素。
  • prev(), prevAll() 以及 prevUntil() 方法的工作方式与上面的方法类似,只不过方向相反而已:它们返回的是前面的同胞元素(在 DOM 树中沿着同胞元素向后遍历,而不是向前)。
  1. jQuery 遍历 - 过滤
  • first() 方法返回被选元素的首个元素
  • last() 方法返回被选元素的最后一个元素。
  • eq() 方法返回被选元素中带有指定索引号的元素。索引号从 0 开始,因此首个元素的索引号是 0 而不是 1。
  • filter(selector) 方法允许您规定一个标准。不匹配这个标准的元素会被从集合中删除,匹配的元素会被返回。
  • not(selector) 方法返回不匹配标准的所有元素。

6. jQuery - AJAX 简介

AJAX 是与服务器交换数据的艺术,它在不重载全部页面的情况下,实现了对部分网页的更新,简短地说,在不重载整个网页的情况下,AJAX 通过后台加载数据,并在网页上进行显示。

6.1 jQuery - AJAX get() 和 post() 方法

jQuery get() 和 post() 方法用于通过 HTTP GET 或 POST 请求从服务器请求数据。

  1. HTTP 请求:GET vs. POST
  • GET - 从指定的资源请求数据
  • POST - 向指定的资源提交要处理的数据
  1. jQuery $.get() 方法
    1
    2
    3
    4
    $.get() 方法通过 HTTP GET 请求从服务器上请求数据。
    语法:$.get(URL,callback);
    必需的 URL 参数规定您希望请求的 URL。
    可选的 callback 参数是请求成功后所执行的函数名
  2. jQuery $.post() 方法
    1
    2
    3
    4
    5
    $.post() 方法通过 HTTP POST 请求从服务器上请求数据。
    $.post(URL,data,callback);
    必需的 URL 参数规定您希望请求的 URL。
    可选的 data 参数规定连同请求发送的数据。
    可选的 callback 参数是请求成功后所执行的函数名。

    7. jQuery 选择器

    选择器 实例 选取
    * $(“*”) 所有元素
    #id $(“#lastname”) id=”lastname” 的元素
    .class $(“.intro”) 所有 class=”intro” 的元素
    element $(“p”) 所有 <p> 元素
    .class.class $(“.intro.demo”) 所有 class=”intro” 且 class=”demo” 的元素
    :first $(“p:first”) 第一个 <p> 元素
    :last $(“p:last”) 最后一个 <p> 元素
    :even $(“tr:even”) 所有偶数 <tr> 元素
    :odd $(“tr:odd”) 所有奇数 <tr> 元素
    :eq(index) $(“ul li:eq(3)”) 列表中的第四个元素(index 从 0 开始)
    :gt(no) $(“ul li:gt(3)”) 列出 index 大于 3 的元素
    :lt(no) $(“ul li:lt(3)”) 列出 index 小于 3 的元素
    :not(selector) $(“input:not(:empty)”) 所有不为空的 input 元素
    :header $(“:header”) 所有标题元素 <h1> - <h6>
    :contains(text) $(“:contains(‘W3School’)”) 包含指定字符串的所有元素
    :empty $(“:empty”) 无子(元素)节点的所有元素
    :hidden $(“p:hidden”) 所有隐藏的 <p> 元素
    :visible $(“table:visible”) 所有可见的表格
    s1,s2,s3 $(“th,td,.intro”) 所有带有匹配选择的元素
    [attribute] $(“[href]”) 所有带有 href 属性的元素
    [attribute=value] $(“[href=’#’]”) 所有 href 属性的值等于 “#” 的元素
    [attribute!=value] $(“[href!=’#’]”) 所有 href 属性的值不等于 “#” 的元素
    [attribute$=value] $(“[href$=’.jpg’]”) 所有 href 属性的值包含以 “.jpg” 结尾的元素
    :input $(“:input”) 所有 <input> 元素
    :text $(“:text”) 所有 type=”text” 的 <input> 元素
    :password $(“:password”) 所有 type=”password” 的 <input> 元素
    :radio $(“:radio”) 所有 type=”radio” 的 <input> 元素
    :checkbox $(“:checkbox”) 所有 type=”checkbox” 的 <input> 元素
    :submit $(“:submit”) 所有 type=”submit” 的 <input> 元素
    :reset $(“:reset”) 所有 type=”reset” 的 <input> 元素
    :button $(“:button”) 所有 type=”button” 的 <input> 元素
    :image $(“:image”) 所有 type=”image” 的 <input> 元素
    :file $(“:file”) 所有 type=”file” 的 <input> 元素
    :enabled $(“:enabled”) 所有激活的 input 元素
    :disabled $(“:disabled”) 所有禁用的 input 元素
    :selected $(“:selected”) 所有被选取的 input 元素
    :checked $(“:checked”) 所有被选中的 input 元素