基础 jQuery 实例
基础 jQuery 实例
jQuery 原则:
由于 jQuery 是为处理 HTML 事件而特别设计的,那么当您遵循以下原则时,您的代码会更恰当且更易维护:
- 把所有 jQuery 代码置于事件处理函数中
- 把所有事件处理函数置于文档就绪事件处理器中
- 把 jQuery 代码置于单独的 .js 文件中
- 如果存在名称冲突,则重命名 jQuery 库
jQuery 语法
jQuery 语法是为 HTML 元素的选取编制的,可以对元素执行某些操作。
基础语法是:$(selector).action()
- 美元符号定义 jQuery
- 选择符(selector)“查询”和“查找” HTML 元素
- jQuery 的 action() 执行对元素的操作
示例
$(this).hide() - 隐藏当前元素
$("p").hide() - 隐藏所有段落
$(".test").hide() - 隐藏所有 class="test" 的所有元素
$("#test").hide() - 隐藏所有 id="test" 的元素
提示:jQuery 使用的语法是 XPath 与 CSS 选择器语法的组合。在本教程接下来的章节,您将学习到更多有关选择器的语法。
一、jQuery 语法实例 隐藏文件
演示 jQuery hide() 函数,隐藏当前的 HTML 元素。
演示 jQuery hide() 函数,隐藏 id="test" 的元素。
演示 jQuery hide() 函数,隐藏所有 <p> 元素。
演示 jQuery hide() 函数,隐藏所有 class="test" 的元素。
1、下面的例子演示了 jQuery 的 hide() 函数,隐藏了 HTML 文档中所有的 <p> 元素。
<html>
<head><script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
//文档就绪函数
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button type="button">Click me</button>
</body>
</html>
二、文档就绪函数
您也许已经注意到在我们的实例中的所有 jQuery 函数位于一个 document ready 函数中:
$(document).ready(function(){
--- jQuery functions go here ----
});
$(function(){
--- jQuery functions go here ----
})
这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。
如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:
- 试图隐藏一个不存在的元素
- 获得未完全加载的图像的大小
三、jQuery 选择器
选择器允许您对元素组或单个元素进行操作。
1、jQuery 选择器
在前面的章节中,我们展示了一些有关如何选取 HTML 元素的实例。
关键点是学习 jQuery 选择器是如何准确地选取您希望应用效果的元素。
jQuery 元素选择器和属性选择器允许您通过标签名、属性名或内容对 HTML 元素进行选择。
选择器允许您对 HTML 元素组或单个元素进行操作。
在 HTML DOM 术语中:
选择器允许您对 DOM 元素组或单个 DOM 节点进行操作。
2、jQuery 元素选择器
jQuery 使用 CSS 选择器来选取 HTML 元素。
$("p") 选取 <p> 元素。
$("p.intro") 选取所有 class="intro" 的 <p> 元素。
$("p#demo") 选取所有 id="demo" 的 <p> 元素。
3.jQuery 属性选择器
jQuery 使用 XPath 表达式来选择带有给定属性的元素。
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
4.jQuery CSS 选择器
jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。
下面的例子把所有 p 元素的背景颜色更改为红色:
<html>
<head>
<script type="text/javascript" src="/jquery/jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").css("background-color","red");
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button type="button">Click me</button>
</body>
</html>
5、常用的选择器实例
语法 |
描述 |
$(this) |
当前 HTML 元素 |
$("p") |
所有 <p> 元素 |
$("p.intro") |
所有 class="intro" 的 <p> 元素 |
$(".intro") |
所有 class="intro" 的元素 |
$("#intro") |
id="intro" 的元素 |
$("ul li:first") |
每个 <ul> 的第一个 <li> 元素 ul后面必须要有空格 |
$("[href$='.jpg']") |
所有带有以 ".jpg" 结尾的属性值的 href 属性 |
$("div#intro .head") |
id="intro" 的 <div> 元素中的所有 class="head" 的元素 |
四、选择器手册jQuery 选择器
选择器 |
实例 |
选取 |
$("*") |
所有元素 |
|
$("#lastname") |
id="lastname" 的元素 |
|
$(".intro") |
所有 class="intro" 的元素 |
|
$("p") |
所有 <p> 元素 |
|
.class.class |
$(".intro.demo") |
所有 class="intro" 且 class="demo" 的元素 |
|
|
|
$("p:first") |
第一个 <p> 元素 |
|
$("p:last") |
最后一个 <p> 元素 |
|
$("tr:even") |
所有偶数 <tr> 元素 |
|
$("tr:odd") |
所有奇数 <tr> 元素 |
|
|
|
|
$("ul li:eq(3)") |
列表中的第四个元素(index 从 0 开始) |
|
$("ul li:gt(3)") |
列出 index 大于 3 的元素 |
|
$("ul li:lt(3)") |
列出 index 小于 3 的元素 |
|
:not(selector) |
$("input:not(:empty)") |
所有不为空的 input 元素 |
|
|
|
$(":header") |
所有标题元素 <h1> - <h6> |
|
|
所有动画元素 |
|
|
|
|
$(":contains('W3School')") |
包含指定字符串的所有元素 |
|
$(":empty") |
无子(元素)节点的所有元素 |
|
:hidden |
$("p:hidden") |
所有隐藏的 <p> 元素 |
$("table:visible") |
所有可见的表格 |
|
|
|
|
s1,s2,s3 |
$("th,td,.intro") |
所有带有匹配选择的元素 |
|
|
|
$("[href]") |
所有带有 href 属性的元素 |
|
$("[href='#']") |
所有 href 属性的值等于 "#" 的元素 |
|
$("[href!='#']") |
所有 href 属性的值不等于 "#" 的元素 |
|
$("[href$='.jpg']") |
所有 href 属性的值包含以 ".jpg" 结尾的元素 |
|
|
|
|
$(":input") |
所有 <input> 元素 |
|
$(":text") |
所有 type="text" 的 <input> 元素 |
|
$(":password") |
所有 type="password" 的 <input> 元素 |
|
$(":radio") |
所有 type="radio" 的 <input> 元素 |
|
$(":checkbox") |
所有 type="checkbox" 的 <input> 元素 |
|
$(":submit") |
所有 type="submit" 的 <input> 元素 |
|
$(":reset") |
所有 type="reset" 的 <input> 元素 |
|
$(":button") |
所有 type="button" 的 <input> 元素 |
|
$(":image") |
所有 type="image" 的 <input> 元素 |
|
$(":file") |
所有 type="file" 的 <input> 元素 |
|
|
|
|
$(":enabled") |
所有激活的 input 元素 |
|
$(":disabled") |
所有禁用的 input 元素 |
|
$(":selected") |
所有被选取的 input 元素 |
|
$(":checked") |
所有被选中的 input 元素 |
五、jQuery 事件
jQuery 是为事件处理特别设计的。
jQuery 事件函数
jQuery 事件处理方法是 jQuery 中的核心函数。
事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。术语由事件“触发”(或“激发”)经常会被使用。
通常会把 jQuery 代码放到 <head>部分的事件处理方法中:
实例
<html>
<head>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
$(document).ready(function(){
$("button").click(function(){
$("p").hide();
});
});
</script>
</head>
<body>
<h2>This is a heading</h2>
<p>This is a paragraph.</p>
<p>This is another paragraph.</p>
<button>Click me</button>
</body>
</html>
$("#button").click(function() {..some code... } )
该方法隐藏所有 <p> 元素:
$("p").hide();
六、jQuery 事件函数
由于 jQuery 是为处理 HTML 事件而特别设计的,那么当您遵循以下原则时,您的代码会更恰当且更易维护:
- 把所有 jQuery 代码置于事件处理函数中
- 把所有事件处理函数置于文档就绪事件处理器中
- 把 jQuery 代码置于单独的 .js 文件中
- 如果存在名称冲突,则重命名 jQuery 库
1、jQuery 事件
下面是 jQuery 中事件方法的一些例子:
Event 函数 |
绑定函数至 |
$(document).ready(function) |
将函数绑定到文档的就绪事件(当文档完成加载时) |
$(selector).click(function) |
触发或将函数绑定到被选元素的点击事件 |
$(selector).dblclick(function) |
触发或将函数绑定到被选元素的双击事件 |
$(selector).focus(function) |
触发或将函数绑定到被选元素的获得焦点事件 |
$(selector).mouseover(function) |
触发或将函数绑定到被选元素的鼠标悬停事件 |
2、jQuery 事件方法
事件方法会触发匹配元素的事件,或将函数绑定到所有匹配元素的某个事件。
触发实例:
$("button#demo").click()
上面的例子将触发 id="demo" 的 button 元素的 click 事件。
绑定实例:
$("button#demo").click(function(){$("img").hide()})
上面的例子会在点击 id="demo" 的按钮时隐藏所有图像。
方法 |
描述 |
向匹配元素附加一个或更多事件处理器 |
|
触发、或将函数绑定到指定元素的 blur 事件 |
|
触发、或将函数绑定到指定元素的 change 事件 |
|
触发、或将函数绑定到指定元素的 click 事件 |
|
触发、或将函数绑定到指定元素的 double click 事件 |
|
向匹配元素的当前或未来的子元素附加一个或多个事件处理器 |
|
移除所有通过 live() 函数添加的事件处理程序。 |
|
触发、或将函数绑定到指定元素的 error 事件 |
|
返回 event 对象上是否调用了 event.preventDefault()。 |
|
相对于文档左边缘的鼠标位置。 |
|
相对于文档上边缘的鼠标位置。 |
|
阻止事件的默认动作。 |
|
包含由被指定事件触发的事件处理器返回的最后一个值。 |
|
触发该事件的 DOM 元素。 |
|
该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。 |
|
描述事件的类型。 |
|
指示按了哪个键或按钮。 |
|
触发、或将函数绑定到指定元素的 focus 事件 |
|
触发、或将函数绑定到指定元素的 key down 事件 |
|
触发、或将函数绑定到指定元素的 key press 事件 |
|
触发、或将函数绑定到指定元素的 key up 事件 |
|
为当前或未来的匹配元素添加一个或多个事件处理器 |
|
触发、或将函数绑定到指定元素的 load 事件 |
|
触发、或将函数绑定到指定元素的 mouse down 事件 |
|
触发、或将函数绑定到指定元素的 mouse enter 事件 |
|
触发、或将函数绑定到指定元素的 mouse leave 事件 |
|
触发、或将函数绑定到指定元素的 mouse move 事件 |
|
触发、或将函数绑定到指定元素的 mouse out 事件 |
|
触发、或将函数绑定到指定元素的 mouse over 事件 |
|
触发、或将函数绑定到指定元素的 mouse up 事件 |
|
向匹配元素添加事件处理器。每个元素只能触发一次该处理器。 |
|
文档就绪事件(当 HTML 文档就绪可用时) |
|
触发、或将函数绑定到指定元素的 resize 事件 |
|
触发、或将函数绑定到指定元素的 scroll 事件 |
|
触发、或将函数绑定到指定元素的 select 事件 |
|
触发、或将函数绑定到指定元素的 submit 事件 |
|
绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。 |
|
所有匹配元素的指定事件 |
|
第一个被匹配元素的指定事件 |
|
从匹配元素移除一个被添加的事件处理器 |
|
从匹配元素移除一个被添加的事件处理器,现在或将来 |
|
触发、或将函数绑定到指定元素的 unload 事件 |
七、jQuery 参考手册 - 效果
jQuery 效果函数
方法 |
描述 |
对被选元素应用“自定义”的动画 |
|
对被选元素移除所有排队的函数(仍未运行的) |
|
delay() |
对被选元素的所有排队函数(仍未运行)设置延迟 |
dequeue() |
运行被选元素的下一个排队函数 |
逐渐改变被选元素的不透明度,从隐藏到可见 |
|
逐渐改变被选元素的不透明度,从可见到隐藏 |
|
把被选元素逐渐改变至给定的不透明度 |
|
隐藏被选的元素 |
|
queue() |
显示被选元素的排队函数 |
显示被选的元素 |
|
通过调整高度来滑动显示被选元素 |
|
对被选元素进行滑动隐藏和滑动显示的切换 |
|
通过调整高度来滑动隐藏被选元素 |
|
停止在被选元素上运行动画 |
|
对被选元素进行隐藏和显示的切换 |
八、jQuery 文档操作方法
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 |
描述 |
向匹配的元素添加指定的类名。 |
|
在匹配的元素之后插入内容。 |
|
向匹配元素集合中的每个元素结尾插入由参数指定的内容。 |
|
向目标结尾插入匹配元素集合中的每个元素。 |
|
设置或返回匹配元素的属性和值。 |
|
在每个匹配的元素之前插入内容。 |
|
创建匹配元素集合的副本。 |
|
从 DOM 中移除匹配元素集合。 |
|
删除匹配的元素集合中所有的子节点。 |
|
检查匹配的元素是否拥有指定的类。 |
|
设置或返回匹配的元素集合中的 HTML 内容。 |
|
把匹配的元素插入到另一个指定的元素集合的后面。 |
|
把匹配的元素插入到另一个指定的元素集合的前面。 |
|
向匹配元素集合中的每个元素开头插入由参数指定的内容。 |
|
向目标开头插入匹配元素集合中的每个元素。 |
|
移除所有匹配的元素。 |
|
从所有匹配的元素中移除指定的属性。 |
|
从所有匹配的元素中删除全部或者指定的类。 |
|
用匹配的元素替换所有匹配到的元素。 |
|
用新内容替换匹配的元素。 |
|
设置或返回匹配元素的内容。 |
|
从匹配的元素中添加或删除一个类。 |
|
移除并替换指定元素的父元素。 |
|
设置或返回匹配元素的值。 |
|
把匹配的元素用指定的内容或元素包裹起来。 |
|
把所有匹配的元素用指定的内容或元素包裹起来。 |
|
将每一个匹配的元素的子内容用指定的内容或元素包裹起来。 |
九、jQuery 属性操作方法
下面列出的这些方法获得或设置元素的 DOM 属性。
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 |
描述 |
向匹配的元素添加指定的类名。 |
|
设置或返回匹配元素的属性和值。 |
|
检查匹配的元素是否拥有指定的类。 |
|
设置或返回匹配的元素集合中的 HTML 内容。 |
|
从所有匹配的元素中移除指定的属性。 |
|
从所有匹配的元素中删除全部或者指定的类。 |
|
从匹配的元素中添加或删除一个类。 |
|
设置或返回匹配元素的值。 |
十、jQuery 文档操作方法
这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。
方法 |
描述 |
向匹配的元素添加指定的类名。 |
|
在匹配的元素之后插入内容。 |
|
向匹配元素集合中的每个元素结尾插入由参数指定的内容。 |
|
向目标结尾插入匹配元素集合中的每个元素。 |
|
设置或返回匹配元素的属性和值。 |
|
在每个匹配的元素之前插入内容。 |
|
创建匹配元素集合的副本。 |
|
从 DOM 中移除匹配元素集合。 |
|
删除匹配的元素集合中所有的子节点。 |
|
检查匹配的元素是否拥有指定的类。 |
|
设置或返回匹配的元素集合中的 HTML 内容。 |
|
把匹配的元素插入到另一个指定的元素集合的后面。 |
|
把匹配的元素插入到另一个指定的元素集合的前面。 |
|
向匹配元素集合中的每个元素开头插入由参数指定的内容。 |
|
向目标开头插入匹配元素集合中的每个元素。 |
|
移除所有匹配的元素。 |
|
从所有匹配的元素中移除指定的属性。 |
|
从所有匹配的元素中删除全部或者指定的类。 |
|
用匹配的元素替换所有匹配到的元素。 |
|
用新内容替换匹配的元素。 |
|
设置或返回匹配元素的内容。 |
|
从匹配的元素中添加或删除一个类。 |
|
移除并替换指定元素的父元素。 |
|
设置或返回匹配元素的值。 |
|
把匹配的元素用指定的内容或元素包裹起来。 |
|
把所有匹配的元素用指定的内容或元素包裹起来。 |
|
将每一个匹配的元素的子内容用指定的内容或元素包裹起来。 |
十一、jQuery CSS 操作函数
下面列出的这些方法设置或返回元素的 CSS 相关属性。
CSS 属性 |
描述 |
设置或返回匹配元素的样式属性。 |
|
设置或返回匹配元素的高度。 |
|
返回第一个匹配元素相对于文档的位置。 |
|
返回最近的定位祖先元素。 |
|
返回第一个匹配元素相对于父元素的位置。 |
|
设置或返回匹配元素相对滚动条左侧的偏移。 |
|
设置或返回匹配元素相对滚动条顶部的偏移。 |
|
设置或返回匹配元素的宽度。 |
十二、jQuery 参考手册 - Ajax
jQuery Ajax 操作函数
jQuery 库拥有完整的 Ajax 兼容套件。其中的函数和方法允许我们在不刷新浏览器的情况下从服务器加载数据。
函数 |
描述 |
执行异步 HTTP (Ajax) 请求。 |
|
当 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
|
当 Ajax 请求完成且出现错误时注册要调用的处理程序。这是一个 Ajax 事件。 |
|
在 Ajax 请求发送之前显示一条消息。 |
|
设置将来的 Ajax 请求的默认值。 |
|
当首个 Ajax 请求完成开始时注册要调用的处理程序。这是一个 Ajax 事件。 |
|
当所有 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
|
当 Ajax 请求成功完成时显示一条消息。 |
|
使用 HTTP GET 请求从服务器加载数据。 |
|
使用 HTTP GET 请求从服务器加载 JSON 编码数据。 |
|
使用 HTTP GET 请求从服务器加载 JavaScript 文件,然后执行该文件。 |
|
从服务器加载数据,然后把返回到 HTML 放入匹配元素。 |
|
创建数组或对象的序列化表示,适合在 URL 查询字符串或 Ajax 请求中使用。 |
|
使用 HTTP POST 请求从服务器加载数据。 |
|
将表单内容序列化为字符串。 |
|
序列化表单元素,返回 JSON 数据结构数据。 |
十三、jQuery 参考手册 - 遍历
jQuery 遍历函数
jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。
函数 |
描述 |
将元素添加到匹配元素的集合中。 |
|
把堆栈中之前的元素集添加到当前集合中。 |
|
获得匹配元素集合中每个元素的所有子元素。 |
|
从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。 |
|
获得匹配元素集合中每个元素的子元素,包括文本和注释节点。 |
|
对 jQuery 对象进行迭代,为每个匹配元素执行函数。 |
|
结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。 |
|
将匹配元素集合缩减为位于指定索引的新元素。 |
|
将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。 |
|
获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。 |
|
将匹配元素集合缩减为集合中的第一个元素。 |
|
将匹配元素集合缩减为包含特定元素的后代的集合。 |
|
根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。 |
|
将匹配元素集合缩减为集合中的最后一个元素。 |
|
把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。 |
|
获得匹配元素集合中每个元素紧邻的同辈元素。 |
|
获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。 |
|
获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。 |
|
从匹配元素集合中删除元素。 |
|
获得用于定位的第一个父元素。 |
|
获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。 |
|
获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。 |
|
获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。 |
|
获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。 |
|
获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。 |
|
获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。 |
|
获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。 |
|
将匹配元素集合缩减为指定范围的子集。 |
十四、jQuery 属性
下面列出的这些方法设置或返回元素的 CSS 相关属性。
属性 |
描述 |
在版本 1.10 中被弃用。包含传递给 jQuery() 的原始上下文。 |
|
包含 jQuery 版本号。 |
|
改变以毫秒计的动画速率。 |
|
全局禁用/启用所有动画。 |
|
表示不同浏览器特性或漏洞的属性集合(用于 jQuery 内部使用)。 |
|
包含 jQuery 对象中的元素数目。 |
十五、jQuery DOM 元素方法
函数 |
描述 |
获得由选择器指定的 DOM 元素。 |
|
返回指定元素相对于其他指定元素的 index 位置。 |
|
返回被 jQuery 选择器匹配的元素的数量。 |
|
以数组的形式返回 jQuery 选择器匹配的元素。 |
十六、jQuery 数据操作函数
这些方法允许我们将指定的 DOM 元素与任意数据相关联。
函数 |
描述 |
从队列中删除所有未运行的项目。 |
|
存储与匹配元素相关的任意数据。 |
|
存储与指定元素相关的任意数据。 |
|
从队列最前端移除一个队列函数,并执行它。 |
|
从队列最前端移除一个队列函数,并执行它。 |
|
存储与匹配元素相关的任意数据。 |
|
显示或操作匹配元素所执行函数的队列。 |
|
显示或操作匹配元素所执行函数的队列。 |
|
移除之前存放的数据。 |
|
移除之前存放的数据。 |
十七、jQuery 队列控制函数
函数 |
描述 |
.clearQueue() |
从队列中删除所有未运行的项目。 |
.dequeue() |
从队列最前端移除一个队列函数,并执行它。 |
jQuery.dequeue() |
从队列最前端移除一个队列函数,并执行它。 |
.queue() |
显示或操作匹配元素所执行函数的队列。 |
jQuery.queue() |
显示或操作匹配元素所执行函数的队列。 |