分类 | 名称 | 举例说明 | 返回 |
---|---|---|---|
基础 | $() | 如果()内是
|
jQuery |
选择器 | parent > child | 取得<div>下的所有<span>子节点 $("div > span") |
Array <Element(s)> |
:first | 选取所有<div>元素中第一个<div>元素 $("div:first") |
jQuery | |
:last | 选取所有<div>元素中最后一个<div>元素 $("div:last") |
jQuery | |
:not(Selector) | 选取所有class不是mytest的<div>元素 $("div:not(.mytest)") |
Array <Element(s)> | |
:even | 查找表格的偶数行,从0开始计数 $("tr:even") |
Array <Element(s)> | |
:odd | 查找表格的奇数行,从0开始计数 $("tr:odd") |
Array <Element(s)> | |
:eq(index) | 匹配一个给定索引值的元素,从0开始计数 $("tr:eq(1)") |
Array <Element> | |
:gt(index) | 匹配所有大于给定索引值的元素,从0开始计数 $("tr:gt(0)") |
Array <Element(s)> | |
:lt(index) | 匹配所有小于给定索引值的元素,从0开始计数 $("tr:lt(2)") |
Array <Element(s)> | |
:animated | 选取当前正在执行动画的所有元素 $(":animated") |
Array <Element(s)> | |
:contains(string) | 选取所有文本内容包含“关键词”的<div>元素 $("div:contains('关键词')") |
Array <Element(s)> | |
:has | 查找所有含有<p>子元素的<div>父元素 $("div:has(p)") |
Array <Element(s)> | |
:empty | 选取所有空<div></div>的元素 $("div:empty") |
Array <Element(s)> | |
:visible | 查找所有可见元素 $("tr:visible") |
Array <Element(s)> | |
[attribute = value] | 选取文本输入框的input元素 $("input[type=text]") |
Array <Element(s)> | |
[attribute != value] | 选取所有不是hidden的input元素,注意,没有type属性的input也会被选取 $("input[type!=hidden]") |
Array <Element(s)> | |
[attribute ^= value] | 选取开头为mailto:的所有a链接 $("a[href^='mailto']") |
Array <Element(s)> | |
[attribute $= value] | 选取所有结尾为.jpg的img图片 $("img[src$='.jpg']") |
Array <Element(s)> | |
表单选择器 | :input | 查找所有的input元素(包括input, textarea, select和button) $(":input") |
Array <Element(s)> |
:password | 查找所有密码框 $(":password") |
Array <Element(s)> | |
:text | 查找所有单行文本框 $(":text") |
Array <Element(s)> | |
:radio | 查找所有单选按钮 $(":radio") |
Array <Element(s)> | |
:checkbox | 查找所有复选框 $(":checkbox") |
Array <Element(s)> | |
:checked | 查找所有选中的checkbox, radio $("input:checked") |
Array <Element(s)> | |
:selected | 查找所有选中的选项元素 $("select:selected") |
Array <Element(s)> | |
属性 | attr(key) 取得一个属性的值 attr(key,value) 设置一个属性的值 |
HTML: <img src="test.jpg"/> jQuery: $("img").attr("src"); Result: test.jpg |
jQuery |
removeAttr(key) 删除一个属性 |
HTML: <img src="test.jpg"/> jQuery: $("img").removeAttr("src"); Result: [ <img /> ] |
jQuery | |
addClass(class) 追加指定的类名 |
HTML: <p>Hello</p> jQuery: $("p").addClass("selected highlight"); Result: [ <p class="selected highlight">Hello</p> ] 如果要替换样式,用attr() |
jQuery | |
removeClass() 移除样式 |
Html: 可以同时移除多个样式: 或者全部移除样式: |
jQuery | |
toggleClass() 如果节点存在该样式,则移除,不存在,则追加 |
$("p").toggleClass("blue"); | jQuery | |
hasClass(class) 判断节点是否存在该样式,返回布尔值 |
$("p").hasClass("blue"); 该方法等价于:$("p").is(".blue"); | jQuery | |
html() 取得或设置文本内容 类似innerHTML() |
仅可用于html文档 | String/ jQuery | |
text() 取得或设置文本内容 类似innerText() |
可以用于html和xml文档 | String/ jQuery | |
val() 取得或设置input文本框的值 |
Html: 通过val()还能做到将表单多选框,checkbox,radio事先选中: |
String/ Array | |
节点匹配 | each(callback) 为每一个匹配的元素执行一个函数 |
迭代两个图像,并设置它们的 src 属性 HTML: |
jQuery |
size()/length 获取对象中元素的个数 |
$("img").size(); $("img").length; |
Number | |
index([subject]) 匹配的元素,并返回相应元素的索引值,从0开始计数 |
HTML: <ul> <li id="foo">foo</li> <li id="bar">bar</li> <li id="baz">baz</li> </ul> jQuery: $('li').index($('#bar')); //1 $('li').index($('li:gt(0)')); //1 $('#bar').index('li'); //1 $('#bar').index(); //1 |
Number | |
get() 以数组形式取得所有匹配的节点集合 get(index) index存在则从中选择某一个DOM节点 |
HTML: <img src="test1.jpg"/> <img src="test2.jpg"/> jQuery: $("img").get(0); Reslut: [ <img src="test1.jpg"/> ] |
Array <Element> Element | |
eq(index) 以对象形式获取第index个元素,位置从0算起 |
获取匹配的第二个元素 HTML: 补充 .get(index)和.eq(index)的区别 |
jQuery | |
first() 获取匹配的第一个元素 |
$('li').first() 等价于 $('li:first') | jQuery | |
last() 获取匹配的最后一个元素 |
$('li').last() 等价于 $('li:last') | jQuery | |
filter(fn) 筛选出与指定函数返回值匹配的元素集合 |
保留子元素中不含有ol的元素。 HTML: |
jQuery | |
has(expr) 保留包含特定后代的元素,去掉那些不含有指定后代的元素 |
HTML: <ul> <li>list item 1</li> <li>list item 2 <ul> <li>list item 2-a</li> <li>list item 2-b</li> </ul> </li> <li>list item 3</li> <li>list item 4</li> </ul> jQuery: $('li').has('ul').css('background-color', 'red'); |
jQuery | |
not(expr) 删除与指定表达式匹配的元素 |
从p元素中删除带有 select 的ID的元素 HTML: |
jQuery | |
find(expr) 搜索所有与指定表达式匹配的元素 |
从所有的段落开始,进一步搜索下面的span元素。与$("p span")相同。 HTML: |
jQuery | |
next([expr]) 取得一个包含匹配的元素集合中每一个元素紧邻的后面同辈元素的元素集合 |
找到每个段落的后面紧邻的同辈元素。 找到每个段落的后面紧邻的同辈元素中类名为selected的元素。 |
jQuery | |
prev([expr]) 前面的同辈元素 |
同上 | jQuery | |
children([expr]) 子元素集合 |
同上 | jQuery | |
parent([expr]) 父元素集合 |
同上 | jQuery | |
siblings([expr]) 符合条件的所有同辈元素的元素集合 |
找到每个div的所有同辈元素。 HTML: |
jQuery | |
is(expr) 如果元素集合中有一个元素符合表达式,返回true |
Html: <form><input type="checkbox" /></form> JQuery: $("input[type='checkbox']").parent().is("form") Result: true 判断元素是否处于动画状态 if(!$(element).is(":animated")){…} |
Boolean | |
end() 回到最近的一个"破坏性"操作之前。即,将匹配的元素列表变为前一次的状态 |
所谓的"破坏性"就是指任何改变所匹配的jQuery元素的操作。 选取所有的p元素,查找并选取span子元素,然后再回过来选取p元素 HTML: |
jQuery | |
文本处理 | append() $(A).append(B) 将B的内容追加到A元素内 |
Html: <p>我想说:</p> JQuery: $("p").append("<b>你好</b>"); Result: <p>我想说:<b>你好</b></p> |
jQuery |
appendTo() $(A).appendTo(B) 将A的内容追加到B元素内 |
Html: <p>我想说:</p> JQuery: $("<b>你好</b>").appendTo("p"); Result: <p>我想说:<b>你好</b></p> |
jQuery | |
replaceWith() $(A).replaceWith(B) 将B的内容替换到A节点 |
Html: <p>你最喜欢的是?</p> JQuery: $("p").replaceWith("<b>你最不喜欢的是?</b>"); |
jQuery | |
replaceAll() $(A).replaceAll(B) 将A的内容替换到B节点 |
Html: <p>你最喜欢的是?</p> JQuery: $("<b>你最不喜欢的是?</b>").replaceAll("p"); |
jQuery | |
remove() 移出节点 |
JQuery: $("ul li:eq(1)").remove(); $("ul li").remove("li[title!=菠萝]"); |
jQuery | |
empty() 清空节点 |
JQuery: $("ul li:eq(1)").empty(); 该节点里的文本内容和子节点将全部清空 |
jQuery | |
css | css(name,value) 取得一个元素的css值或设定一个元素的css值 |
$("p").css("color","#cc0000"); 和attr方法一样,可以同时赋值多个css属性 $("p").css({"color":"#cc0000","font-size":"14px"}); |
jQuery |
offset() 取得元素在当前窗口中的定位值,返回两个属性left,top |
var offset = $("p").offset(); var left = offset.left; var top = offset.top; |
Object {top,left} | |
position() 取得元素相对于最近一个 position为relative 或position为absolute的父节点定位值,返回两个属性left,top |
var position = $("p").position(); var left = position.left; var top = position.top; |
Object {top,left} | |
scrollLeft([val]) 获取或设置匹配元素相对滚动条左侧的偏移 |
取得浏览器滚动条的左边界 $(window).scrollLeft() 获取第一段相对滚动条顶部的偏移 HTML: <p>Hello</p><p>2nd Paragraph</p> jQuery: var p = $("p:first"); $("p:last").text("scrollTop:" + p.scrollTop()); Result: <p>Hello</p><p>scrollTop: 0</p> |
Number | |
scrollTop([val]) 获取或设置匹配元素相对滚动条顶部的偏移 |
取得浏览器滚动条的上边界 $(window).scrollTop() |
Number | |
height([val]) 取得对象的高度,或赋值对象的高度 |
浏览器可视区域的高 $(window).height()? |
Number | |
width([val]) 取得对象的宽度,或赋值对象的宽度 |
$("#gooDiv").width(300); | Number | |
innerHeight() | obj的自身大小 + padding大小 | Number | |
innerWidth() | 同上 | Number | |
outerHeight([true]) |
obj自身大小 + padding大小 + border大小 如果属性true: |
Number | |
outerWidth([true]) | 同上 | Number | |
事件 | bind(type,[data,]fn) 对象事件响应,event可以是JS事件,也可以是JQuery事件 |
$('#foo').bind('click', function() { 多个事件捆绑,每个事件类型用空格分隔: 在jQuery 1.4中,可以通过传入一个映射对来一次绑定多个事件处理函数: 事件处理函数: |
jQuery |
trigger(type[,data]) 让节点主动触发js/jQuery事件 |
可以触发多个事件,如: $(obj).trigger("focus").trigger("select"); |
jQuery | |
hover(over,out) 模仿悬停事件的方法 |
$("td").hover(function(){ $(this).addClass("hover"); }, function(){ $(this).removeClass("hover"); }); |
jQuery | |
toggle(fn1,fn2[,fn3]) 模拟多次点击情况的方法 另一个作用是切换可视状态 |
$("td").toggle(function(){ $(this).addClass("selected"); },function(){ $(this).removeClass("selected"); }); |
jQuery | |
click(fn) | 无需多言 | jQuery | |
focus(fn) | 无需多言 | jQuery | |
keyup(fn) |
这里的event是JQuery返回的一个事件对象,event有一个which属性,可以获得键盘按键的键值。 inputObj.keyup(function(event){ 1 = 鼠标左键,2 = 鼠标中键,3 = 鼠标右键,13 = 回车,16 = shift,17 = ctrl,27 = ESC 另外event.pageX和event.pageY两个属性用于获得鼠标相对于页面的x坐标和y坐标。 |
jQuery | |
load(fn) 当对象加载完成时触发, 对应javascript中的onload事件 另一个作用时ajax加载页面 |
本例中捕捉图片加载完成的事件 //javascript的Image对象可以预装图片 var myImg = new image(); $(myImg).attr("src","images/car.jpg").load(function(){ … }); |
jQuery | |
mousedown(fn) | 无需多言 | jQuery | |
mousemover(fn) | 无需多言 | jQuery | |
mouseout(fn) | 无需多言 | jQuery | |
mouseup(fn) | 无需多言 | jQuery | |
resize(fn) | 当窗口对象的大小发生改变时 $(window).resize(function(){…}); |
jQuery | |
scroll(fn) | 当窗口对象拖动滚动条时 $(window).scroll(function(){…}); |
jQuery | |
submit(fn) | 无需多言 这里需要一个return false,来阻止默认的提交事件 |
jQuery | |
动画效果 |
show(speed,[callback]) |
速度fast,normal,slow要用""括起来,单位毫秒 | jQuery |
hide(speed,[callback]) | jQuery | ||
toggle(speed,[callback]) | jQuery | ||
slideDown(speed,[callback]) 高度变化 |
jQuery | ||
slideUp(speed,[callback]) | jQuery | ||
slideToggle(speed,[callback]) | jQuery | ||
fadeIn(speed,[callback]) 透明度变化 |
jQuery | ||
fadeOut(speed,[callback]) | jQuery | ||
补充一个类似fadeToggle效果的小插件 |
jQuery.fn.fadeToggle = function( speed, easing, callback) { return this.animate({opacity: 'toggle'}, speed, easing, callback); }; |
jQuery | |
fadeTo(speed,[callback]) | jQuery | ||
$(obj).animate(css,speed,[callback]) 其他动画的底层实现全部基于该方法 |
使某个节点的某个css属性在设定时间内变化 累加动画: 多重动画: 综合动画: 回调函数callback: |
jQuery | |
stop([clearQueue], [gotoEnd]) 停止所有在指定元素上正在运行的动画 |
$("#panel").hover(function(){ stop()在无参数情况下,只能停止正在进行的一个动画,碰到多动画效果需要加上true参数: 第二个参数gotoEnd,一般用法是stop(false,true),效果是不执行动画队列,但直接达到动画结束时的效果,如同直接用了css()设置了参数。 |
jQuery | |
dequeue(name) 让动画马上执行,即让两种或多种效果同时执行,而不用等待前一个动画效果结束(从队列最前端移除一个队列函数,并执行他) |
$("button").click(function(){ ("div").animate({left:'+=200px'}, 2000); $("div").animate({top:'0px'}, 600); $("div").queue(function () { $(this).toggleClass("red"); $(this).dequeue(); }); $("div").animate({left:'10px', top:'30px'}, 700); }); |
jQuery | |
Ajax | load(url,[data],[callback]) load(url selector) 载入远程 HTML 文件代码并插入至 DOM 中 |
全部载入,必须是UTF-8编码,否则中文乱码; 只有符合css选择器的部分内容载入; 无论加载是否成功,callback都会触发。 $("#show div").load("test.html");?? $("#show div").load("test.html H2"); |
jQuery |
$.get(url[,data][,callback][,type]) |
HTML: $.get("http://127.0.0.1/JQuery/userverify?username="+encodeURI(encodeURI(username)),null,function(response){ $("#result").html(response); }); |
XMLHttpRequest | |
$.post(url[,data][,callback][,type]) |
GET与POST的区别:
$(function(){ |
XMLHttpRequest | |
$.ajax([options]) jQuery 底层 AJAX 实现 |
几个常用options:
用$.ajax()实现$.getScript()方法 用$.ajax()实现$.getJSON()方法 保存数据到服务器,成功时显示信息。 |
XMLHttpRequest | |
ajaxComplete(callback) AJAX 请求完成时执行函数 |
$("#msg").ajaxComplete(function(event,request, settings){ $(this).append("<li>请求完成.</li>"); }); |
jQuery | |
ajaxSuccess(callback) AJAX 请求成功时执行函数 |
同上 | jQuery | |
ajaxStart(callback) AJAX 请求开始时执行函数 |
可以用bind给对象绑定2个ajax事件: $("#show").bind("ajaxStart",function(){ $(this).slideDown(500); }).bind("ajaxStop",function(){ $(this).slideUp(500); }); |
jQuery | |
ajaxStop(callback) AJAX 请求结束时执行函数 |
同上 | jQuery | |
ajaxError(callback) AJAX 请求发生错误时执行函数 |
同上 | jQuery | |
ajaxSend(callback) AJAX 请求发送前执行函数 |
同上 | jQuery | |
serialize() 序列表表格内容为字符串 |
如果表单中的元素非常多,那么使用{key:value}的赋值方法就相当繁琐,所以可以改成: serialize()可以查找form1表单下的所有元素值并转化成字符串 当我们处理中文数据时,需要使用encodeURIComponent进行转换,但是如果使用serialize()则会自动进行了编码。 serialize()方法,还可以用来选取元素,如:$(":checkbox, :radio").searialize(); |
String | |
其他 | data(name,data) 缓存数据 data(name) 取值 |
$(obj).data(name.value); var data = $(obj).data(name); |
Any |
$.browser 可以判断浏览器类型 |
$.browser.msie == true $.browser.safari == true $.browser.opera == true $.browser.mozilla == true |
boolean | |
$.browser.version 判断浏览器的版本 |
$.browser.version.indexOf("8") | String | |
$.trim(str) 去掉字符串起始和结尾的空格 |
$.trim(" hello, how are you? "); | String | |
JQuery载入 |
$(document).ready(function(){…}); 简写:$(function(){…}); |
||
JQuery插件声明 | $.fn.pluginName = function(){ this.click(); //方法中的this表示执行这个方法的对象,不用$(this) return this; //保证其他JQuery可以级联操作 } |
loading