[关闭]
@raphael96 2016-11-04T12:18:15.000000Z 字数 10212 阅读 1331

jQuery Cheat—Sheet(jQuery学习笔记)

jQuery 学习笔记


什么是jQuery?

jQuery是一种JavaScript库,实现了常见任务的自动化和复杂任务简单化。
jQuery库为Web脚本编程提供了通用的抽象层,使之适合任何脚本编程情景。
jQuery能满足以下需求:

取得文档中的元素、修改页面外观、改变文档内容、响应用户的交互操作、为页面添加动态效果、不刷新加载、简化常见的JavaScript任务。


jQuery版本?

jQuery 2.0 不再支持IE 6/7/8 了,但是 jQuery 1.9 会继续支持

jQuery可以下载使用,有两个版本的 jQuery 可供下载


使用jQuery

可以通过多种方法在网页中添加 jQuery。 您可以使用以下方法:

本地jQuery

  1. <head>
  2. <script src="jquery-1.10.2.min.js"></script>
  3. <!--Src 填写本地下载的jquery路径-->
  4. </head>

在线jQuery

  1. <head>
  2. <script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
  3. <!--百度CDN提供的在线jquery库-->
  4. </head>

jQuery语法

通过 jQuery,可以选取(查询,query) HTML 元素,并对它们执行"操作"(actions)。

jQuery 语法

jQuery 语法是通过选取 HTML 元素,并对选取的元素执行某些操作。
基础语法: $(selector).action()

实例:

  1. $(this).hide() - 隐藏当前元素
  2. $("p").hide() - 隐藏所有 <p> 元素
  3. $("p.test").hide() - 隐藏所有 class="test" <p> 元素
  4. $("#test").hide() - 隐藏所有 id="test" 的元素

文档就绪事件

所有 jQuery 函数位于一个 document ready 函数中:

  1. $(document).ready(function(){
  2. // 开始写 jQuery 代码...
  3. });

这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。
如果在文档没有完全加载之前就运行函数,操作可能失败。下面是两个具体的例子:

提示:简洁写法(与以上写法效果相同):

  1. $(function(){
  2. // 开始写 jQuery 代码...
  3. });

以上两种方式你可以选择你喜欢的方式实现文档就绪后执行jQuery方法。


jQuery选择元素

DOM-Document Object Model 文档对象模型 以树状表示的文档模型

为了创建jQuery对象,就用使用$()函数。函数接受CSS选择符作为参数,充当一个工厂,返回包含页面中对应元素的jQuery对象。jQuery对象选择符有三种:标签名、ID、类 可以单独使用,也可以与其他选择符组合使用

元素选择器

jQuery 元素选择器基于元素名选取元素。
在页面中选取所有<p>元素:

  1. $("p")

id选择器

通过 id 选取元素语法如下:

  1. $("#test")

.class 选择器

jQuery 类选择器可以通过指定的 class 查找元素。

  1. $(".test")

其他选择器

jQuery其他选择器

混合选择 eg:

$('#selected-plays > li')

子元素选择符 > 查找ID为selected-plays元素的子元素(>)中所有的列表项


jQuery 事件

什么是事件?

页面对不同访问者的响应叫做事件。
事件处理程序指的是当 HTML 中发生某些事件时所调用的方法。

jQuery 事件方法语法

在 jQuery 中,大多数 DOM 事件都有一个等效的 jQuery 方法。

页面中指定一个点击事件:

  1. $("p").click();

下一步是定义什么时间触发事件。您可以通过一个事件函数实现:

  1. $("p").click(function(){
  2. // 动作触发后执行的代码!!
  3. });

常用的 jQuery 事件方法

文档DOM加载完成

  1. $(document).ready()

方法允许我们在文档完全加载完后执行函数。该事件方法在 jQuery 语法 章节中已经提到过。

点击事件

当点击元素是,会发生 click 事件。
在下面的实例中,当点击事件在某个 <p> 元素上触发时,隐藏当前的<p>元素:

  1. $("p").click(function(){
  2. $(this).hide();
  3. });

双击事件

当双击元素时,会发生 dblclick 事件。
在下面的实例中,当双击事件在某个 <p> 元素上触发时,隐藏当前的<p>元素:

  1. $("p").dblclick(function(){
  2. $(this).hide();
  3. });

鼠标穿过事件

当鼠标指针穿过元素时,会发生 mouseenter 事件。
在下面的实例中,当鼠标穿过 <p1> 元素时,弹出“You entered p1!”警告框:

  1. $("#p1").mouseenter(function(){
  2. alert("You entered p1!");
  3. });

鼠标离开事件

当鼠标指针离开元素时,会发生 mouseleave 事件。
在下面的实例中,当鼠标离开 <p1> 元素时,弹出“Bye! You now leave p1!”警告框:

  1. $("#p1").mouseleave(function(){
  2. alert("Bye! You now leave p1!");
  3. });

鼠标移入并点击事件

当鼠标指针移动到元素上方,并按下鼠标按键时,会发生 mousedown 事件。
在下面实例中,鼠标移入<p1>元素,并点击时,弹出“Bye! You now leave p1!”警告框:

  1. $("#p1").mousedown(function(){
  2. alert("Mouse down over p1!");
  3. });

鼠标释放事件

当在元素上松开鼠标按钮时,会发生 mouseup 事件。
在下面实例中,鼠标点击<p1>元素,释放时,弹出“Mouse up over p1!”警告框:

  1. $("#p1").mouseup(function(){
  2. alert("Mouse up over p1!");
  3. });

鼠标经过悬停事件

hover()方法用于模拟光标悬停事件。
当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter,);
当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。
下面实例中,鼠标移入<p1>元素时,触发mouseenter,弹出“Mouse up over p1!”警告框;
鼠标移出<p1>元素时,触发mouseleave,弹出“Bye! You now leave p1!”警告框;

  1. $("#p1").hover(function(){
  2. alert("You entered p1!");
  3. },
  4. function(){
  5. alert("Bye! You now leave p1!");
  6. });

获得焦点事件

当元素获得焦点时,发生 focus 事件。
当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。
下面实例中,<input>元素获得焦点,将其CSS样式做出修改。

  1. $("input").focus(function(){
  2. $(this).css("background-color","#cccccc");
  3. });

失去焦点事件

当元素失去焦点时,发生 blur 事件。
下面实例中,<input>元素失去焦点,将其CSS样式做出修改。

  1. $("input").blur(function(){
  2. $(this).css("background-color","#ffffff");
  3. });

其他jQuery事件

jQuery事件


jQuery 效果

隐藏和显示

jQuery hide() 和 show()

jQuery hide() 和 show()
通过 jQuery,您可以使用 hide() 和 show() 方法来隐藏和显示 HTML 元素:

  1. //hide元素点击时隐藏<p>标签
  2. $("#hide").click(function(){
  3. $("p").hide();
  4. });
  5. //show元素点击时隐藏<p>标签
  6. $("#show").click(function(){
  7. $("p").show();
  8. });

语法:

  1. $(selector).hide(speed,callback);
  2. $(selector).show(speed,callback);

可选的 speed 参数规定隐藏/显示的速度,可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是隐藏或显示完成后所执行的函数名称。
下面的例子演示了带有 speed 参数的 hide() 方法:

  1. $("button").click(function(){
  2. $("p").hide(1000);
  3. });

jQuery toggle()

通过 jQuery,您可以使用 toggle() 方法来切换 hide() 和 show() 方法。
显示被隐藏的元素,并隐藏已显示的元素:

  1. //点击button隐藏p标签,再次点击显示
  2. $("button").click(function(){
  3. $("p").toggle();
  4. });

淡入和淡出

jQuery fadeIn()

jQuery fadeIn() 用于淡入已隐藏的元素。
语法:$(selector).fadeIn(speed,callback);

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。.
可选的 callback 参数是 fading 完成后所执行的函数名称。

下面的例子演示了带有不同参数的 fadeIn() 方法:

  1. $("button").click(function(){
  2. $("#div1").fadeIn(); //淡入已经隐藏的div1
  3. $("#div2").fadeIn("slow"); //慢速淡入已经隐藏的div2
  4. $("#div3").fadeIn(3000); //3000ms后完全淡入隐藏的div3
  5. });

jQuery fadeOut()

jQuery fadeOut() 方法用于淡出可见元素。
语法:$(selector).fadeOut(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
下面的例子演示了带有不同参数的 fadeOut() 方法:

  1. $("button").click(function(){
  2. $("#div1").fadeOut(); //淡出要隐藏的div1
  3. $("#div2").fadeOut("fast"); //快速淡出要隐藏的div2
  4. $("#div3").fadeOut(5000); //5000ms后完全淡出要隐藏的div3
  5. });

jQuery fadeToggle()

jQuery fadeToggle() 方法可以在 fadeIn() 与 fadeOut() 方法之间进行切换。

语法:$(selector).fadeToggle(speed,callback);
可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。
可选的 callback 参数是 fading 完成后所执行的函数名称。
下面的例子演示了带有不同参数的 fadeToggle() 方法:

  1. $("button").click(function(){
  2. $("#div1").fadeToggle(); //若未隐藏,则淡出;若已隐藏,则淡入
  3. $("#div2").fadeToggle("slow");
  4. $("#div3").fadeToggle(3000);
  5. });

jQuery fadeTo()

jQuery fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。
语法:$(selector).fadeTo(speed,opacity,callback);

下面的例子演示了带有不同参数的 fadeTo() 方法:

  1. $("button").click(function(){
  2. $("#div1").fadeTo("slow",0.15); //慢速褪色到15%的透明度
  3. $("#div2").fadeTo("fast",0.4); //快速褪色到40%的透明度

滑动效果

jQuery slideDown()

jQuery slideDown() 方法用于向下滑动元素。
语法:$(selector).slideDown(speed,callback);

下面的例子演示了 slideDown() 方法:

  1. $("#flip").click(function(){
  2. $("#panel").slideDown(); //点击<flip>标签之后,<panel>元素将会向下滑动显示
  3. });

jQuery slideUp()

jQuery slideUp() 方法用于向上滑动元素。
语法:$(selector).slideUp(speed,callback);

下面的例子演示了 slideUp() 方法:

  1. $("#flip").click(function(){
  2. $("#panel").slideUp(); //点击<flip>标签之后,<panel>元素将会向上滑动隐藏
  3. });

jQuery slideToggle()

jQuery slideToggle() 方法可以在 slideDown() 与 slideUp() 方法之间进行切换。

语法:$(selector).slideToggle(speed,callback);

下面的例子演示了 slideToggle() 方法:

  1. $("#flip").click(function(){
  2. $("#panel").slideToggle(); //若panel已经展开,则上滑隐藏;若已隐藏,则下滑展开
  3. });

动画

jQuery animate() 方法允许您创建自定义的动画。

默认情况下,所有 HTML 元素都有一个静态位置,且无法移动。
如需对位置进行操作,要记得首先把元素的 CSS position 属性设置为 relative、fixed 或 absolute!

可以用 animate() 方法来操作所有 CSS 属性吗?

是的,几乎可以!不过,需要记住一件重要的事情:当使用 animate() 时,必须使用 Camel 标记法书写所有的属性名,比如,必须使用paddingLeft 而不是 padding-left,使用 marginRight 而不是 margin-right,等等。

jQuery animate()

jQuery animate() 方法用于创建自定义动画。
语法:$(selector).animate({params},speed,callback);

下面的例子演示 animate() 方法的简单应用。它把

元素往右边移动了 250 像素:

  1. $("button").click(function(){
  2. $("div").animate({left:'250px'}); //将div向左移动250px
  3. });

jQuery animate() - 操作多个属性

请注意,生成动画的过程中可同时使用多个属性:

  1. $("button").click(function(){
  2. $("div").animate({ //写在{}中,属性直接用半角,隔开
  3. left:'250px', //左移动250px
  4. opacity:'0.5', //透明度改变为50%
  5. height:'150px', //高度改变为150px
  6. width:'150px' //宽度改变为150px
  7. });
  8. });

jQuery animate() - 使用相对值

也可以定义相对值(该值相对于元素的当前值)。需要在值的前面加上 += 或 -=:

  1. $("button").click(function(){
  2. $("div").animate({
  3. left:'250px', //左移动250px
  4. height:'+=150px', //高度增加150px
  5. width:'+=150px' //宽度增加150px
  6. });
  7. });

jQuery animate() - 使用预定义的值

也可以把属性的动画值设置为 "show"、"hide" 或 "toggle":

  1. $("button").click(function(){
  2. $("div").animate({
  3. height:'toggle' //点击button,给div的height一个隐藏动画效果
  4. });
  5. });

jQuery animate() - 使用队列功能

默认地,jQuery 提供针对动画的队列功能。
这意味着如果您在彼此之后编写多个 animate() 调用,
jQuery 会创建包含这些方法调用的"内部"队列。然后逐一运行这些 animate 调用。

  1. $("button").click(function(){
  2. var div=$("div"); //定义一个div 表示$("div") 对该元素有多个操作是的简便写法
  3. div.animate({height:'300px',opacity:'0.4'},"slow"); //首先执行,高度增加到300px,透明度40%
  4. div.animate({width:'300px',opacity:'0.8'},"slow"); //然后执行,宽度增加到300px,透明度80%
  5. div.animate({height:'100px',opacity:'0.4'},"slow"); //继续执行,高度减少到100px,透明度40%
  6. div.animate({width:'100px',opacity:'0.8'},"slow"); //最后执行,宽度减少到100px,透明度80%
  7. //以从上到下的顺序执行动画队列
  8. });

停止动画

jQuery stop() 方法用于停止动画或效果,在它们完成之前。
stop() 方法适用于所有 jQuery 效果函数,包括滑动、淡入淡出和自定义动画。
语法:$(selector).stop(stopAll,goToEnd);

  • 可选的 stopAll 参数规定是否应该清除动画队列。默认是false,即仅停止活动的动画,允许任何排入队列的动画向后执行。
  • 可选的goToEnd 参数规定是否立即完成当前动画。默认是 false。

因此,默认地,stop() 会清除在被选元素上指定的当前动画。

  1. $(document).ready(function(){
  2. $("#start").click(function(){
  3. $("div").animate({left:'100px'},5000); //动画效果:div左移100px,
  4. $("div").animate({fontSize:'3em'},5000); //内部文字的字体大小变为3em
  5. });
  6. $("#stop").click(function(){
  7. //无参数的暂停,一次点击,暂停一个animate动画,点击两次暂停两个动画
  8. $("div").stop();
  9. });
  10. $("#stop2").click(function(){
  11. //stopAll参数为true,暂停所有animate动画
  12. $("div").stop(true);
  13. });
  14. $("#stop3").click(function(){
  15. //stopAll参数为true,goToEnd参数为true,暂停所有animate动画,并直接显示结果
  16. $("div").stop(true,true);
  17. });
  18. });

jQuery Callback 回调

Callback 函数在当前动画 100% 完成之后执行。
jQuery 动画的问题

许多 jQuery 函数涉及动画。这些函数也许会将 speed 或 duration 作为可选参数。
例子:$("p").hide("slow") speed 或 duration 参数可以设置许多不同的值,比如 "slow","fast", "normal" 或毫秒。

以下实例在隐藏效果完全实现后回调函数:

  1. $("button").click(function(){
  2. $("p").hide("slow",function(){
  3. alert("The paragraph is now hidden");
  4. });
  5. });

没有回调函数(Callback)

  1. $("button").click(function(){
  2. $("p").hide(1000);
  3. alert("The paragraph is now hidden"); //警告框将在隐藏效果之前弹出
  4. });

jQuery - Chaining

通过 jQuery,可以把动作/方法链接在一起。
Chaining 允许我们在一条语句中运行多个 jQuery 方法(在相同的元素上)

jQuery 方法链接

有一种名为链接(chaining)的技术,允许我们在相同的元素上运行多条 jQuery 命令,一条接着另一条。
提示: 这样的话,浏览器就不必多次查找相同的元素
如需链接一个动作,您只需简单地把该动作追加到之前的动作上。
下面的例子把 css()、slideUp() 和 slideDown() 链接在一起。"p1" 元素首先会变为红色,然后向上滑动,再然后向下滑动:

  1. $("#p1").css("color","red").slideUp(2000).slideDown(2000);

如果需要,我们也可以添加多个方法调用。
提示:

当进行链接时,代码行会变得很差。不过,jQuery语法很宽松;可以按照希望的格式来写,包含换行和缩进。

如下书写也可以很好地运行:

  1. $("#p1").css("color","red")
  2. .slideUp(2000)
  3. .slideDown(2000);

jQuery 会抛掉多余的空格,并当成一行长代码来执行上面的代码行。

jQuery 获取内容和属性

jQuery 拥有可操作 HTML 元素和属性的强大方法。

jQuery DOM 操作

jQuery 中非常重要的部分,就是操作 DOM 的能力。
jQuery 提供一系列与 DOM 相关的方法,这使访问和操作元素和属性变得很容易。

DOM = Document Object Model(文档对象模型)
DOM 定义访问 HTML 和 XML文档的标准:
"W3C文档对象模型独立于平台和语言的界面,允许程序和脚本动态访问和更新文档的内容、结构以及样式。"

获得内容 - text()、html() 以及 val()

三个简单实用的用于 DOM 操作的 jQuery 方法:

  • text() - 设置或返回所选元素的文本内容
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)
  • val() - 设置或返回表单字段的值

下面的例子演示如何通过 jQuery text() 和 html() 方法来获得内容:

  1. $("#btn1").click(function(){
  2. alert("Text: " + $("#test").text()); //警告框弹出test内的文本内容
  3. });
  4. $("#btn2").click(function(){
  5. alert("HTML: " + $("#test").html()); //警告框弹出test内的html代码
  6. });

下面的例子演示如何通过 jQuery val() 方法获得输入字段的值:

  1. $("#btn1").click(function(){
  2. alert("值为: " + $("#test").val()); //警告框弹出test 标签输入的文本值
  3. });

获取属性 - attr()

jQuery attr() 方法用于获取属性值。
下面的例子演示如何获得链接中 href 属性的值:

  1. $("button").click(function(){
  2. alert($("#derwer").attr("href")); //警告框弹出 derwer 标签的 href 属性
  3. });
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注