1
$(function(){// 开始写 jQuery 代码...});
等价于
$(document).ready(function(){// 开始写 jQuery 代码...});
2 :first
$(\"p:first\");//选取第一个 <p> 元素,等价于first-of-type$(\"ul li:first\");//只选取第一个 <ul> 元素的第一个 <li> 元素,如果改成first-of-type,则会选取每个ul下的第一个li元素
3
keydown:在键盘上按下某键时发生,一直按着则会不断触发(opera浏览器除外),它返回的是键盘代码;
keypress:在键盘上按下一个按键,并产生一个字符时发生, 返回ASCII码。注意: shift、alt、ctrl等键按下并不会产生字符,所以监听无效,换句话说,只有按下能在屏幕上输出字符的按键时keypress事件才会触发。若一直按着某按键则会不断触发。
keyup:用户松开某一个按键时触发,与keydown相对,返回键盘代码
4 toggle
语法:
$(selector).toggle(speed,callback);
可选的 speed 参数规定隐藏/显示的速度,可以取以下值:“slow”、“fast” 或毫秒。
可选的 callback 参数是 toggle() 方法完成后所执行的函数名称。
可选的 callback 参数,具有以下三点说明:
$(selector)选中的元素的个数为n个,则callback函数会执行n次
callback函数名后加括号,会立刻执行函数体,而不是等到显示/隐藏完成后才执行
callback既可以是函数名,也可以是匿名函数
5 fadeTo()
//语法$(selector).fadeTo(speed,opacity,callback);
speed取值为slow/normal/fast/毫秒,必需
opacity设置渐变后的透明度0.0-1.0,必需
callback为渐变完成后执行的函数,可选
6 animate()补充
使用相对值
$(\"button\").click(function(){$(\"div\").animate({left:\'250px\',height:\'+=150px\',//必须有 += 或-=width:\'+=150px\'//相对当前值});});
使用预定义值(show/hide/toggle)
$(\"button\").click(function(){$(\"div\").animate({height:\'toggle\';//效果与toggle()一样//width / height / opacity都可以});});
使用队列功能
如果为一个对象编写了多个animate()调用,jQuery 会创建包含这些方法调用的\”内部\”队列。然后逐一运行这些 animate 调用。
$(\"button\").click(function(){var div=$(\"div\");div.animate({height:\'300px\',opacity:\'0.4\'},\"slow\");div.animate({width:\'300px\',opacity:\'0.8\'},\"slow\");div.animate({height:\'100px\',opacity:\'0.4\'},\"slow\");div.animate({width:\'100px\',opacity:\'0.8\'},\"slow\");});
7 stop()补充
//语法$(selector).stop(stopAll,goToEnd);
可选的 stopAll 参数规定是否应该清除动画队列。默认是 false,即仅停止活动的动画,允许任何排入队列的动画向后执行。(false 如果有多个动画,只停止当前那个,后面的继续执行;true 停止所有动画)
可选的 goToEnd 参数规定是否立即完成当前动画。默认是 false;true,表示完成动作,但停止整个动画队列
因此,默认地,stop() 会清除在被选元素上指定的当前动画。
8 callback函数
由于 JavaScript 语句(指令)是逐一执行的 – 按照次序,动画之后的语句可能会产生错误或页面冲突,因为动画还没有完成。
为了避免这个情况,可以以参数的形式添加 Callback 函数,确保它在动画完成后再执行。
$(\"button\").click(function(){$(\"p\").hide(\"slow\",function(){alert(\"The paragraph is now hidden\");//动画完全结束后才会执行});});
9 链式写法
$(\"#p1\").css(\"color\",\"red\").slideUp(2000).slideDown(2000);
10
text() – 设置或返回所选元素的文本内容
html() – 设置或返回所选元素的内容(包括 HTML 标记)
val() – 设置或返回表单字段的值
attr() 方法用于获取属性值
$(\"#btn1\").click(function(){alert(\"Text: \" + $(\"#test\").text());});$(\"#btn2\").click(function(){alert(\"HTML: \" + $(\"#test\").html());});$(\"#btn1\").click(function(){alert(\"Value: \" + $(\"#test\").val());});//不带参数就是获取$(\"button\").click(function(){alert($(\"#w3s\").attr(\"href\"));//需要输入属性名});
设置
$(\"#btn1\").click(function(){$(\"#test1\").text(\"Hello world!\");});$(\"#btn2\").click(function(){$(\"#test2\").html(\"<b>Hello world!</b>\");});$(\"#btn3\").click(function(){$(\"#test3\").val(\"Dolly Duck\");//设置时将设置的值作为参数传入});
text()、html() 以及 val(),同样拥有回调函数。回调函数有两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回您希望使用的字符串。
$(\"#btn1\").click(function(){$(\"#test1\").text(function(i,origText){return \"Old text: \" + origText + \" New text: Hello world!(index: \" + i + \")\";});});$(\"#btn2\").click(function(){$(\"#test2\").html(function(i,origText){return \"Old html: \" + origText + \" New html: Hello <b>world!</b>(index: \" + i + \")\";});});
设置属性
$(\"button\").click(function(){$(\"#w3s\").attr(\"href\",\"//www.w3cschool.cn/jquery\");//属性名,属性值});$(\"button\").click(function(){$(\"#w3s\").attr({\"href\" : \"//www.w3cschool.cn/jquery\",\"title\" : \"jQuery 教程\"});//以对象形式可以同时设置多个属性});
attr(),也提供回调函数。回调函数由两个参数:被选元素列表中当前元素的下标,以及原始(旧的)值。然后以函数新值返回希望使用的字符串。
$(\"button\").click(function(){$(\"#w3cschool\").attr(\"href\", function(i,origValue){return origValue + \"/jquery\";});//属性名,回调函数});
11 添加元素/内容
append() – 在被选元素内部的结尾插入指定内容
$(\"p\").append(\"Some appended text.\");
prepend() – 在被选元素内部的开头插入指定内容
$(\"p\").prepend(\"Some prepended text.\");
append() 和 prepend() 方法能够通过参数接收无限数量的新元素。可以通过 jQuery 来生成文本/HTML(就像上面的例子那样),或者通过 JavaScript 代码和 DOM 元素。
function appendText(){var txt1=\"<p>Text.</p>\"; // 使用 HTML 标签创建文本var txt2=$(\"<p></p>\").text(\"Text.\"); // 使用 jQuery 创建文本var txt3=document.createElement(\"p\");txt3.innerHTML=\"文本。\"; // 使用 DOM 创建文本 text with DOM$(\"p\").append(txt1,txt2,txt3); // P元素内部追加新元素}
after() – 在被选元素之后插入内容
$(\"img\").after(\"在后面添加文本\");
before() – 在被选元素之前插入内容
$(\"img\").before(\"在前面添加文本\");
after() 和 before() 方法能够通过参数接收无限数量的新元素。可以通过 text/HTML、jQuery 或者 JavaScript/DOM 来创建新元素。
function afterText(){var txt1=\"<b>I </b>\"; // 使用 HTML 创建元素var txt2=$(\"<i></i>\").text(\"love \"); // 使用 jQuery 创建元素var txt3=document.createElement(\"big\"); // 使用 DOM 创建元素txt3.innerHTML=\"jQuery!\";$(\"img\").after(txt1,txt2,txt3); // 在图片后添加文本}
在jQuery中,append/prepend 是在选择元素内部嵌入,而after/before 是在元素外面追加。
12 删除元素
remove() – 删除被选元素(及其子元素)
empty() – 从被选元素中删除子元素
$(\"#div1\").remove();$(\"#div1\").empty();
remove() 方法也可接受一个参数,允许对被删元素进行过滤,该参数可以是任何 jQuery 选择器的语法。
$(\"p\").remove(\".italic\");
13 CSS类
addClass() – 向被选元素添加一个或多个类
$(\"button\").click(function(){$(\"h1,h2,p\").addClass(\"blue\");//为多个元素添加类$(\"div\").addClass(\"important\");});
$(\"button\").click(function(){$(\"#div1\").addClass(\"important blue\");//为元素添加多个类});
removeClass() – 从被选元素删除一个或多个类(指定的)
$(\"button\").click(function(){$(\"h1,h2,p\").removeClass(\"blue\");//写法与选择器一致});
toggleClass() – 对被选元素进行添加/删除类的切换操作
$(\"button\").click(function(){$(\"h1,h2,p\").toggleClass(\"blue\");//有就删,无就加});
css() – 设置或返回样式属性
//返回属性值css(\"propertyname\");//参数是属性名$(\"p\").css(\"background-color\");//只能返回第一个P的属性值
14 尺寸操作
width() 方法设置或返回元素的宽度(不包括内边距、边框或外边距)。
height() 方法设置或返回元素的高度(不包括内边距、边框或外边距)。
innerWidth() 方法返回元素的宽度(包括内边距)。
innerHeight() 方法返回元素的高度(包括内边距)。
outerWidth() 方法返回元素的宽度(包括内边距和边框)。
outerHeight() 方法返回元素的高度(包括内边距和边框)。
outerWidth(true) 方法返回元素的宽度(包括内边距、边框和外边距)。
outerHeight(true) 方法返回元素的高度(包括内边距、边框和外边距)。
$(\"p\").width();//返回P的宽度$(\"p\").width(\"300px\");//设置P的宽度
15 遍历
parents() 方法
返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。
$(document).ready(function(){$(\"span\").parents();//返回span的所有祖先元素});$(document).ready(function(){$(\"span\").parents(\"ul\");//通过参数进行过滤,返回span的ul祖先元素});
parentsUntil() 方法
返回介于两个给定元素之间的所有祖先元素。
$(document).ready(function(){$(\"span\").parentsUntil(\"div\");//返回span和div之间的祖先元素,不包括div});