1. 向页面添加库<script>标签放在<head>标签内
<head>
// 本地下载后引用
<script type="text/javascript" src="jquery.js"></script>
// 线上Google 的 CDN
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.0/jquery.min.js"></script>
// 线上Microsoft 的 CDN
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jquery/jquery-1.4.min.js"></script>
</head>
2. 语法
2.1. $(selector).action()
- $定义jQuery
- 选择符(selector)“查询”和“查找”HTML元素
- jQuery的action()执行对元素的操作
// 例子
$(this).hide() // 隐藏当前元素
$("p").hide() // 隐藏所有段落
$(".test").hide() // 隐藏所有 class="test" 的所有元素
$("#test").hide() // 隐藏所有 id="test" 的元素
2.2. 文档就绪函数,所有 jQuery 函数位于一个 document ready 函数中。为了防止文档在完全加载就绪之前运行jQuery代码。
$(document).ready(function(){
--- jQuery functions go here ----
});
3. 选择器
| 选择器 | 语法 | 描述 |
|---|---|---|
* |
$("*") |
所有元素 |
#*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> |
:animated |
所有动画元素 | |
: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 元素 |
4. jQuery名称冲突
var jq = jQuery.noConflict(),用jq来代替$符号
5. jQuery效果
- seed参数规定隐藏/显示的速度,可取值:slow,fast,毫秒
- callback参数是隐藏/显示完成后所执行的函数名称
// 1. 显示/隐藏
$(selector).hide(speed,callback); // 隐藏
$(selector).show(speed,callback); // 显示
$(selector).toggle(speed,callback); // 切换隐藏、显示
// 2. 淡入淡出
$(selector).fadeIn(speed,callback); // 淡入已隐藏的元素
$(selector).fadeOut(speed,callback); // 淡出可见元素
$(selector).fadeToggle(speed,callback); // 切换淡入、淡出
$(selector).fadeTo(speed,opacity,callback); // 允许渐变为给定的不透明度opacity (值介于 0 与 1 之间)
// 3. 滑动
$(selector).slideDown(speed,callback); // 下滑
$(selector).slideUp(speed,callback); // 上滑
$(selector).slideToggle(speed,callback); // 切换上下滑
// 4. 动画
$(selector).animate({parmas},speed,callback); // 自定义动画。params 参数定义形成动画的css属性
// 5. 停止
$(selector).stop(stopAll,goToEnd);// stopAll是否应该清除动画队列默认false,goToEnd是否立即完成当前动画。默认是 false。
6. jQuery HTML
6.1. 获取方法
- text() 设置或返回所选元素的文本内容
- html() 设置或返回所选元素的内容包括html标记
- val() 设置或返回表单字段的值
- attr() 获取属性值
6.2. 添加方法
- append() 在被选元素的结尾插入内容
- prepend() 在被选元素的开头插入内容
- after() 在被选元素之后插入内容
- before() 在被选元素之前插入内容
6.3. 删除元素/内容
- remove() 删除被选元素及其子元素
- empty() 从被选元素中删除子元素
6.4. css类方法
- addClass() 向被选元素添加一个或多个类
- removeClass() 从被选元素删除一个或多个类
- toggleClass() 对被选元素进行添加/删除类的切换操作
- css() 设置或返回样式属性
6.5. 尺寸
- width() 设置或返回元素的宽度,不包括内外边距,边框
- height() 设置或返回元素的高度,不包括内外边距,边框
- innerWidth() 返回元素的宽度,包括内边距
- innerHeight() 返回元素的高度,包括内边距
- outerWidth() 返回元素的宽度,包括外边距
- outerHeight() 返回元素的宽度,包括外边距
7. jQuery遍历
| 方法 | 语法 | 描述 |
|---|---|---|
| .add() | .add(selector) |
将元素添加到匹配元素的集合中。 |
| .andSelf() | .andSelf() |
把堆栈中之前的元素集添加到当前集合中。 |
| .children() | .children(selector) |
获得匹配元素集合中每个元素的所有子元素。 |
| .closest() | .closest(selector) |
从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。 |
| .contents() | .contents() |
获得匹配元素集合中每个元素的子元素,包括文本和注释节点。 |
| .each() | $(selector).each(function(index,element)) |
对 jQuery 对象进行迭代,为每个匹配元素执行函数。 |
| .end()] | .end() |
结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。 |
| .eq() | .eq(index) |
将匹配元素集合缩减为位于指定索引的新元素。 |
| .filter() | .filter(selector) |
将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。 |
| .find() | .find(selector) |
获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。 |
| .first() | .first() |
将匹配元素集合缩减为集合中的第一个元素。 |
| .has() | .has(selector) |
将匹配元素集合缩减为包含特定元素的后代的集合。 |
| .is() | .is(selector) |
根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。 |
| .last() | .last() |
将匹配元素集合缩减为集合中的最后一个元素。 |
| .map() | .map(callback(index,domElement)) |
把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。 |
| .next() | .next(selector) |
获得匹配元素集合中每个元素紧邻的同辈元素。 |
| .nextAll() | .nextAll(selector) |
获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。 |
| .nextUntil() | .nextUntil(selector,filter) |
获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。 |
| .not() | .not(selector) |
从匹配元素集合中删除元素。 |
| .offsetParent() | .offsetParent() |
获得用于定位的第一个父元素。 |
| .parent() | .parent(selector) |
获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。 |
| .parents() | .parents(selector) |
获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。 |
| .parentsUntil() | .parentsUntil(selector,filter) |
获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。 |
| .prev() | .prev(selector) |
获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。 |
| .prevAll() | .prevAll(selector) |
获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。 |
| .prevUntil() | .prevUntil(selector, filter) |
获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。 |
| .siblings() | .siblings(selector) |
获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。 |
| .slice() | .slice(selector,end) |
将匹配元素集合缩减为指定范围的子集。 |
8. jQuery AJAX
// 1. load方法
$(selector).load(URL,data,callback)
- url地址
- data查询字符串键值对
- callback执行完成后执行的函数
responseTxt成功,statusTxt调用状态,xhr包括XMLHttpRequest对象
// 2. get方法
$.get(URL,callback);
// 3. post方法
$.post(URL,data,callback);
| 方法 | 语法 | 描述 |
|---|---|---|
| jQuery.ajax() | jQuery.ajax([settings]) |
执行异步 HTTP (Ajax) 请求。 |
| .ajaxComplete() | jQuery.ajaxComplete(function(event,xhr,options)) |
当 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
| .ajaxError() | .ajaxError(function(event,xhr,options,exc)) |
当 Ajax 请求完成且出现错误时注册要调用的处理程序。这是一个 Ajax 事件。 |
| .ajaxSend() | .ajaxSend([function(event,xhr,options)]) |
在 Ajax 请求发送之前显示一条消息。 |
| jQuery.ajaxSetup() | jQuery.ajaxSetup(name:value, name:value, ...) |
设置将来的 Ajax 请求的默认值。 |
| .ajaxStart() | .ajaxStart(function()) |
当首个 Ajax 请求完成开始时注册要调用的处理程序。这是一个 Ajax 事件。 |
| .ajaxStop() | .ajaxStop(function()) |
当所有 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。 |
| .ajaxSuccess() | .ajaxSuccess(function(event,xhr,options)) |
当 Ajax 请求成功完成时显示一条消息。 |
| jQuery.get() | $(selector).get(url,data,success(response,status,xhr),dataType) |
使用 HTTP GET 请求从服务器加载数据。 |
| jQuery.getJSON() | jQuery.getJSON(url,data,success(data,status,xhr)) |
使用 HTTP GET 请求从服务器加载 JSON 编码数据。 |
| jQuery.getScript() | jQuery.getScript(url,success(response,status)) |
使用 HTTP GET 请求从服务器加载 JavaScript 文件,然后执行该文件。 |
| .load() | load(url,data,function(response,status,xhr)) |
从服务器加载数据,然后把返回到 HTML 放入匹配元素。 |
| jQuery.param() | jQuery.param(object,traditional) |
创建数组或对象的序列化表示,适合在 URL 查询字符串或 Ajax 请求中使用。 |
| jQuery.post() | jQuery.post(url,data,success(data, textStatus, jqXHR),dataType) |
使用 HTTP POST 请求从服务器加载数据。 |
| .serialize() | $(selector).serialize() |
将表单内容序列化为字符串。 |
| .serializeArray() | $(selector).serializeArray() |
序列化表单元素,返回 JSON 数据结构数据。 |
9. jQuery事件
| 方法 | 语法 | 描述 |
|---|---|---|
| bind() | $(selector).bind(event,data,function) |
向匹配元素附加一个或更多事件处理器 |
| blur() | $(selector).blur(function) |
触发、或将函数绑定到指定元素的 blur 事件 |
| change() | $(selector).change(function) |
触发、或将函数绑定到指定元素的 change 事件 |
| click() | $(selector).click(function) |
触发、或将函数绑定到指定元素的 click 事件 |
| dblclick() | $(selector).dblclick(function) |
触发、或将函数绑定到指定元素的 double click 事件 |
| delegate() | $(selector).delegate(childSelector,event,data,function) |
向匹配元素的当前或未来的子元素附加一个或多个事件处理器 |
| die() | $(selector).die(event,function) |
移除所有通过 live() 函数添加的事件处理程序。 |
| error() | $(selector).error(function) |
触发、或将函数绑定到指定元素的 error 事件 |
| event.isDefaultPrevented() | event.isDefaultPrevented() |
返回 event 对象上是否调用了 event.preventDefault()。 |
| event.pageX | event.pageX |
相对于文档左边缘的鼠标位置。 |
| event.pageY | event.pageY |
相对于文档上边缘的鼠标位置。 |
| event.preventDefault() | event.preventDefault() |
阻止事件的默认动作。 |
| event.result | event.result |
包含由被指定事件触发的事件处理器返回的最后一个值。 |
| event.target | event.target |
触发该事件的 DOM 元素。 |
| event.timeStamp | event.timeStamp |
该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。 |
| event.type | event.type |
描述事件的类型。 |
| event.which | event.which |
指示按了哪个键或按钮。 |
| focus() | $(selector).focus(function) |
触发、或将函数绑定到指定元素的 focus 事件 |
| keydown() | $(selector).keydown(function) |
触发、或将函数绑定到指定元素的 key down 事件 |
| keypress() | $(selector).keypress(function) |
触发、或将函数绑定到指定元素的 key press 事件 |
| keyup() | $(selector).keyup(function) |
触发、或将函数绑定到指定元素的 key up 事件 |
| live() | $(selector).live(event,data,function) |
为当前或未来的匹配元素添加一个或多个事件处理器 |
| load() | $(selector).load(function) |
触发、或将函数绑定到指定元素的 load 事件 |
| mousedown() | $(selector).mousedown(function) |
触发、或将函数绑定到指定元素的 mouse down 事件 |
| mouseenter() | $(selector).mouseenter(function) |
触发、或将函数绑定到指定元素的 mouse enter 事件 |
| mouseleave() | $(selector).mouseleave(function) |
触发、或将函数绑定到指定元素的 mouse leave 事件 |
| mousemove() | $(selector).mousemove(function) |
触发、或将函数绑定到指定元素的 mouse move 事件 |
| mouseout() | $(selector).mouseout(function) |
触发、或将函数绑定到指定元素的 mouse out 事件 |
| mouseover() | $(selector).mouseover(function) |
触发、或将函数绑定到指定元素的 mouse over 事件 |
| mouseup() | $(selector).mouseup(function) |
触发、或将函数绑定到指定元素的 mouse up 事件 |
| one() | $(selector).one(event,data,function) |
向匹配元素添加事件处理器。每个元素只能触发一次该处理器。 |
| ready() | $(document).ready(function) |
文档就绪事件(当 HTML 文档就绪可用时) |
| resize() | $(selector).resize(function) |
触发、或将函数绑定到指定元素的 resize 事件 |
| scroll() | $(selector).scroll(function) |
触发、或将函数绑定到指定元素的 scroll 事件 |
| select() | $(selector).select(function) |
触发、或将函数绑定到指定元素的 select 事件 |
| submit() | $(selector).submit(function) |
触发、或将函数绑定到指定元素的 submit 事件 |
| toggle() | $(selector).toggle(function1(),function2(),functionN(),...) $(selector).toggle(speed,callback) $(selector).toggle(switch) |
绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。 |
| trigger() | $(selector).trigger(event,[param1,param2,...]) $(selector).trigger(eventObj) |
所有匹配元素的指定事件 |
| triggerHandler() | $(selector).triggerHandler(event,[param1,param2,...]) |
第一个被匹配元素的指定事件 |
| unbind() | $(selector).unbind(event,function) $(selector).unbind(eventObj) |
从匹配元素移除一个被添加的事件处理器 |
| undelegate() | $(selector).undelegate(selector,event,function) |
从匹配元素移除一个被添加的事件处理器,现在或将来 |
| unload() | event.unload(function) |
触发、或将函数绑定到指定元素的 unload 事件 |
10. 效果
| 方法 | 语法 | 描述 |
|---|---|---|
| animate() | $(selector).animate(styles,speed,easing,callback) $(selector).animate(styles,options) |
对被选元素应用“自定义”的动画 |
| clearQueue() | $(selector).clearQueue(queueName) |
对被选元素移除所有排队的函数(仍未运行的) |
| delay() | 对被选元素的所有排队函数(仍未运行)设置延迟 | |
| dequeue() | 运行被选元素的下一个排队函数 | |
| fadeIn() | $(selector).fadeIn(speed,callback) |
逐渐改变被选元素的不透明度,从隐藏到可见 |
| fadeOut() | $(selector).fadeOut(speed,callback) |
逐渐改变被选元素的不透明度,从可见到隐藏 |
| fadeTo() | $(selector).fadeTo(speed,opacity,callback) |
把被选元素逐渐改变至给定的不透明度 |
| hide() | $(selector).hide(speed,callback) |
隐藏被选的元素 |
| queue() | 显示被选元素的排队函数 | |
| show() | $(selector).show(speed,callback) |
显示被选的元素 |
| slideDown() | $(selector).slideDown(speed,callback) |
通过调整高度来滑动显示被选元素 |
| slideToggle() | $(selector).slideToggle(speed,callback) |
对被选元素进行滑动隐藏和滑动显示的切换 |
| slideUp() | $(selector).slideUp(speed,callback) |
通过调整高度来滑动隐藏被选元素 |
| stop() | $(selector).stop(stopAll,goToEnd) |
停止在被选元素上运行动画 |
| toggle() | $(selector).toggle(speed,callback,switch) |
对被选元素进行隐藏和显示的切换 |
11. 文档/属性操作
| 方法 | 语法 | 描述 |
|---|---|---|
| addClass() | $(selector).addClass(class) $(selector).addClass(function(index,oldclass)) |
向匹配的元素添加指定的类名。 |
| after() | $(selector).after(function(index)) |
在匹配的元素之后插入内容。 |
| append() | $(selector).append(function(index,html)) |
向匹配元素集合中的每个元素结尾插入由参数指定的内容。 |
| appendTo() | $(content).appendTo(selector) |
向目标结尾插入匹配元素集合中的每个元素。 |
| attr() | $(selector).attr(attribute,value) $(selector).attr(attribute,function(index,oldvalue)) |
设置或返回匹配元素的属性和值。 |
| before() | $(selector).before(content) $(selector).before(function(index)) |
在每个匹配的元素之前插入内容。 |
| clone() | $(selector).clone(includeEvents) |
创建匹配元素集合的副本。 |
| detach() | $(selector).detach() |
从 DOM 中移除匹配元素集合。 |
| empty() | $(selector).empty() |
删除匹配的元素集合中所有的子节点。 |
| hasClass() | $(selector).hasClass(class) |
检查匹配的元素是否拥有指定的类。 |
| html() | $(selector).html() $(selector).html(content) $(selector).html(function(index,oldcontent)) |
设置或返回匹配的元素集合中的 HTML 内容。 |
| insertAfter() | $(content).insertAfter(selector) |
把匹配的元素插入到另一个指定的元素集合的后面。 |
| insertBefore() | $(content).insertBefore(selector) |
把匹配的元素插入到另一个指定的元素集合的前面。 |
| prepend() | $(selector).prepend(content) $(selector).prepend(function(index,html)) |
向匹配元素集合中的每个元素开头插入由参数指定的内容。 |
| prependTo() | $(content).prependTo(selector) |
向目标开头插入匹配元素集合中的每个元素。 |
| remove() | $(selector).remove() |
移除所有匹配的元素。 |
| removeAttr() | $(selector).removeAttr(attribute) |
从所有匹配的元素中移除指定的属性。 |
| removeClass() | $(selector).removeClass(class) $(selector).removeClass(function(index,oldclass)) |
从所有匹配的元素中删除全部或者指定的类。 |
| replaceAll() | $(content).replaceAll(selector) |
用匹配的元素替换所有匹配到的元素。 |
| replaceWith() | $(selector).replaceWith(content) $(selector).replaceWith(function()) |
用新内容替换匹配的元素。 |
| text() | $(selector).text() $(selector).text(content) $(selector).text(function(index,oldcontent)) |
设置或返回匹配元素的内容。 |
| toggleClass() | $(selector).toggleClass(class,switch) $(selector).toggleClass(function(index,class),switch) |
从匹配的元素中添加或删除一个类。 |
| unwrap() | $(selector).unwrap() |
移除并替换指定元素的父元素。 |
| val() | $(selector).val(value) $(selector).val(value) $(selector).val(function(index,oldvalue)) |
设置或返回匹配元素的值。 |
| wrap() | $(selector).wrap(wrapper) $(selector).wrap(function()) |
把匹配的元素用指定的内容或元素包裹起来。 |
| wrapAll() | $(selector).wrapAll(wrapper) |
把所有匹配的元素用指定的内容或元素包裹起来。 |
| wrapinner() | $(selector).wrapInner(wrapper) $(selector).wrapInner(function()) |
将每一个匹配的元素的子内容用指定的内容或元素包裹起来 |
12. css操作
| css属性 | 语法 | 描述 |
|---|---|---|
| css() | $(selector).css(name) $(selector).css(name,value) $(selector).css(name,function(index,value)) |
设置或返回匹配元素的样式属性。 |
| height() | $(selector).height() $(selector).height(length) $(selector).height(function(index,oldheight)) |
设置或返回匹配元素的高度。 |
| offset() | $(selector).offset() $(selector).offset(value) $(selector).offset(function(index,oldoffset)) |
返回第一个匹配元素相对于文档的位置。 |
| offsetParent() | $(selector).offsetParent() |
返回最近的定位祖先元素。 |
| position() | $(selector).position() |
返回第一个匹配元素相对于父元素的位置。 |
| scrollLeft() | $(selector).scrollLeft() $(selector).scrollLeft(position) |
设置或返回匹配元素相对滚动条左侧的偏移。 |
| scrollTop() | $(selector).scrollTop(offset) |
设置或返回匹配元素相对滚动条顶部的偏移。 |
| width() | $(selector).width() $(selector).width(length) |
设置或返回匹配元素的宽度。 |
13. DOM元素方法
| 方法 | 语法 | 描述 |
|---|---|---|
| 函数 | 描述 | |
| .get() | $(selector).get(index) |
获得由选择器指定的 DOM 元素。 |
| .index() | $(selector).index() |
返回指定元素相对于其他指定元素的 index 位置。 |
| .size() | $(selector).size() |
返回被 jQuery 选择器匹配的元素的数量。 |
| .toArray()] | $(selector).toArray() |
以数组的形式返回 jQuery 选择器匹配的元素。 |