核心理念是write less,do more(写得更少,做得更多)。
jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。
如今,jQuery已经成为最流行的javascript库,在世界前10000个访问最多的网站中,有超过55%在使用jQuery。
jQuery是免费、开源的,使用MIT许可协议。
jQuery的语法设计可以使开发者更加便捷,例如操作文档对象、选择DOM元素、制作动画效果、事件处理、使用Ajax以及其他功能。
除此以外,jQuery提供API让开发者编写插件。其模块化的使用方式使开发者可以很轻松的开发出功能强大的静态或动态网页。
选择器:
$("p") 选取全部
$("p.intro") 选取所有包含class为"intro"的 <p> 元素。
$("#demo") 选取 id为"demo" 的元素。
$("[href]") 选取所有带有 href 属性的元素。
$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。
$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。
$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。
$("[href^='/imgaes/']") 选取所有 href 值以 /imgaes/" 开头的元素。
更多详细信息请参见jQuery API的Selectors部分。
事件处理:
直接绑定指定事件,事件类型即方法名,支持click、focus、blur、submit等。
$("#button").click(function(){
//script
});
用on来绑定事件,off来解绑事件,第一个参数为事件名,第二个参数为回调函数。1.7.2版本开始支持。
$("#button").on('click',function(){
//script
});
jQuery还支持如下方法:
.blur() 表单元素失去焦点。
.change() 表单元素的值发生变化
.click() 鼠标单击
.dblclick() 鼠标双击
.focus() 表单元素获得焦点
.focusin() 子元素获得焦点
.focusout() 子元素失去焦点
.hover() 同时为mouseenter和mouseleave事件指定处理函数
.keydown() 按下键盘(长时间按键,只返回一个事件)
.keypress() 按下键盘(长时间按键,将返回多个事件)
.keyup() 松开键盘
.load() 元素加载完毕
.mousedown() 按下鼠标
.mouseenter() 鼠标进入(进入子元素不触发)
.mouseleave() 鼠标离开(离开子元素不触发)
.mousemove() 鼠标在元素内部移动
.mouseout() 鼠标离开(离开子元素也触发)
.mouseover() 鼠标进入(进入子元素也触发)
.mouseup() 松开鼠标
.ready() DOM加载完成
.resize() 浏览器窗口的大小发生改变
.scroll() 滚动条的位置发生变化
.select() 用户选中文本框中的内容
.submit() 用户递交表单
.toggle() 根据鼠标点击的次数,依次运行多个函数
.unload() .当用户离开页面时,会发生 unload 事件。
遍历:
add() 将元素添加到匹配元素的集合中。
andSelf() 把堆栈中之前的元素集添加到当前集合中。
children() 获得匹配元素集合中每个元素的所有子元素。
closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。
contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点。
each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数。
end() 结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。
eq() 将匹配元素集合缩减为位于指定索引的新元素。
filter() 将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。
find() 获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。
first() 将匹配元素集合缩减为集合中的第一个元素。
has() 将匹配元素集合缩减为包含特定元素的后代的集合。
is() 根据选择器检查当前的匹配元素集合,如果存在至少一个匹配元素,则返回 true。
last() 将匹配元素集合缩减为集合中的最后一个元素。
map() 把当前匹配集合中的每个元素传递给一个函数,产生包含返回值的新的 jQuery 对象。
next() 获得匹配元素集合中每个元素紧邻的同辈元素。
nextAll() 获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。
nextUntil() 获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。
not() 从匹配元素集合中删除元素。
offsetParent() 获得用于定位的第一个父元素。
parent() 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。
parentsUntil() 获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。
prev() 获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。
prevAll() 获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。
prevUntil() 获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。
siblings() 获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。
slice() 将匹配元素集合缩减为指定范围的子集。
效果:
显示隐藏:show(),hide(),toggle()
淡入淡出:fadeIn(),fadeOut(),fadeToggle(),fadeTo()
滑动效果:slideDown(),slideUp(),slideToggle()
动画效果:animate()
文档设置操作:
addClass() 向匹配的元素添加指定的类名。
after() 在匹配的元素之后插入内容。
append() 向匹配的元素内部追加内容。
appendTo() 向匹配的元素内部追加内容。
attr() 设置或返回匹配元素的属性和值。
before() 在每个匹配的元素之前插入内容。
clone() 创建匹配元素集合的副本。
detach() 从 DOM 中移除匹配元素集合。
empty() 删除匹配的元素集合中所有的子节点。
hasClass() 检查匹配的元素是否拥有指定的类。
html() 设置或返回匹配的元素集合中的 HTML 内容。
insertAfter() 把匹配的元素插入到另一个指定的元素集合的后面。
insertBefore() 把匹配的元素插入到另一个指定的元素集合的前面。
prepend() 向每个匹配的元素内部前置内容。
prependTo() 向每个匹配的元素内部前置内容。
remove() 移除所有匹配的元素。
removeAttr() 从所有匹配的元素中移除指定的属性。
removeClass()从所有匹配的元素中删除全部或者指定的类。
replaceAll()用匹配的元素替换所有匹配到的元素。
replaceWith()用新内容替换匹配的元素。
text()设置或返回匹配元素的内容。
toggleClass()从匹配的元素中添加或删除一个类。
unwrap()移除并替换指定元素的父元素。
val()设置或返回匹配元素的值。
wrap()把匹配的元素用指定的内容或元素包裹起来。
wrapAll()把所有匹配的元素用指定的内容或元素包裹起来。
wrapinner()将每一个匹配的元素的子内容用指定的内容或元素包裹起来。
Ajax操作:
jQuery.ajax()执行异步 HTTP (Ajax) 请求。
ajaxComplete()当 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。
ajaxError()当 Ajax 请求完成且出现错误时注册要调用的处理程序。这是一个 Ajax 事件。
ajaxSend()在 Ajax 请求发送之前显示一条消息。
jQuery.ajaxSetup()设置将来的 Ajax 请求的默认值。
ajaxStart()当首个 Ajax 请求完成开始时注册要调用的处理程序。这是一个 Ajax 事件。
ajaxStop()当所有 Ajax 请求完成时注册要调用的处理程序。这是一个 Ajax 事件。
ajaxSuccess()当 Ajax 请求成功完成时显示一条消息。
jQuery.get()使用 HTTP GET 请求从服务器加载数据。
jQuery.getJSON()使用 HTTP GET 请求从服务器加载 JSON 编码数据。
jQuery.getScript()使用 HTTP GET 请求从服务器加载 JavaScript 文件,然后执行该文件。
load()从服务器加载数据,然后把返回到 HTML 放入匹配元素。
jQuery.param()创建数组或对象的序列化表示,适合在 URL 查询字符串或 Ajax 请求中使用。
jQuery.post()使用 HTTP POST 请求从服务器加载数据。
serialize()将表单内容序列化为字符串。
serializeArray()序列化表单元素,返回 JSON 数据结构数据。