`
Nainse
  • 浏览: 24008 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

jQuery入门手册1.3.2

阅读更多

 

难免有误,阅读注意

 

原文地址:http://docs.jquery.com/Tutorials:Getting_Started_with_jQuery

翻译:牛小超-Nainse

开始时间:20093516:38:13

 

该讲解是从jQuery的基础知识开始,一直到构建插件的高级技术。

Original: http://jquery.bassistance.de/jquery-getting-started.html
Author: Jörn Zaefferer

 

Similar Tutorials: jQuery CoreSelectorsAttributesTraversingManipulationEventsEffectsAjaxPlugins

 

这是一个介绍jQuery js 库的指导性文档。你需要具备一些jsdomdocument object model 文档对象模型)的基础知识。她是从最基础开始的,对于那些有必要的信息,我会尽可能详细的解释。这篇文档里包含了一个简单的“hello world”的例子,选择符和事件的基础知识(selector and event basics)AjaxFX以及一些用法(usage),还附带了一些插件的著作(authoring of plugins)

 

这篇文档没有提供“click me”的代码,而只提供了“copy me”的,我的意图是想请您复制他们(更好的做法是用自己的手指一个字符一个字符的敲出他们),然后亲自尝试着使用他们。复制这些例子,看看他们都能做什么,然后大胆的试着修改他们。

 

内容提要(Contents)

 

SETUP

在开始之前我们需要一个jQueryjs库,可以在main download page得到。jQuery Starterkit提供了一些标记(markup)和css配合这些工作。在下载并解压jQuery Starterkit之后,把jquery.js放到同一个目录下,并用你最喜欢的编辑器(我用DreamWeaver cs3)打开startkit.htmlcustom.js,并且用浏览器也把startkit.html打开。

 

现在,你已经为测试已经被人们用烂了的“Hello world”例子做好了所有的准备工作。

 

可能感兴趣的连接:

n  jQuery Starterkit

n  Downloading jQuery

 

HELLO JQUERY

新建一个空的html文件:

 

<html>                                                                  

 <head>                                                                 

 <script type="text/javascript" src="jquery.js"></script>         

 <script type="text/javascript">                                        

   // we will add our javascript code here                                    

 </script>                                                              

 </head>                                                                

 <body>                                                                  

   <!-- we will add our HTML content here -->                                       

 </body>                                                                

 </html>

 

这个页面只引入了一个jquery.js库文件(确保src的值是指向jquery.js存储的路径的。这里是设定你的html文件和js文件在同一目录下)。那两个有注释块的位置是我们将要填放后续代码的地方。

 

上面我们已经做了这么多了,但是当我们读取或操作dom的时候,还是要确保最重要的一点,那就是在我们添加一些事件的时候,dom必须是ready状态的。

 

为了确保这一点,我们需要注册一下domready事件:

$(document).ready(function() {

   // do stuff when DOM is ready

 });

 

放一个alert语句到这个函数里是没有什么意义的,因为alert的执行不依赖于dom是否已经被加载。所以让我们来点儿有难度的吧:当点击一个连接的时候alert一下^_-

 

首先,在<body>标签后加一个:

<a href="">Link</a>

 

现在,把$(document).ready句柄(handler)设置为:

 

$(document).ready(function() {

   $("a").click(function() {

     alert("Hello world!");

   });

 });

 

这样,在你点击这个链接的时候就会看到一个alert框。

 

好,让我们回过头来看看我们都做了什么:$(“a”)jQuery的一个选择器(selector),它选择了所有的a元素。$本身是jQuery类的一个别名,可以用$()构造一个jQuery的新对象,接下来我们调用的click()函数是jQuery对象的一个方法,它绑定一个click事件到所有的a元素上(在这里,只绑定了一个a元素),并且当click事件被触发的时候执行相应的函数。

 

这和下面的代码的功能是类似的:

<a href="" onclick="alert('Hello world')">Link</a>

 

它们的区别是显而易见的:我们不需要再为每一个a元素单独指定onClick事件了。我们把结构(structure HTML)和行为(behavior JS)清晰的分离了,就像我们用css来分离结构和显示样式是一样的。

 

注意,我们现在才只是展示了选择器和事件(selectors and events)的一点点特性而已。

 

可能感兴趣的链接

n  jQuery Base

n  jQuery Expressions

n  jQuery Basic Events

 

来,找我吧:用选择器和事件(Find me: Using selectors and events

 

jQuery提供了两种方法来选定元素(select elements)。第一种是用cssXPath组合成一个字符串作为jQuery构造器的参数,第二种方式是用jQuery对象提供的一些方法来获取。这两种方式是可以混合使用的。

 

下面通过选择和修改starterkit中的第一个ordered list来试用其中的一些选择器。

 

一开始,我们选择这个list本身,他有一个id orderedlist”,在你熟知的js中,你可以用document.getElementById(“orderedlist”)来获取这个元素的对象,但是在jQuery中,我们要用:

$(document).ready(function(){

    $(“#orderedlist”).addClass(“red”);

});

Starterkit提供了一个样式表screen.css。其中定义了一个red类,用来把背景颜色设置为红色。所以,在浏览器中当你重新加载页面后,你会发现第一个ordered list的背景被设置成了红色,第二个及其他的元素的背景却没有改变。

 

现在,让我们给第一个list的子元素添加上定义好的css类吧:

$(document).ready(function() {

   $("#orderedlist > li").addClass("blue");

 });

这个代码是用来选取orderedlist的所有标签名为li的子元素,并为他们加上名为“blue”的css类。

 

下面,让我们来点高级的吧:当用户把鼠标移到这些个li上时改变li的样式,移开时回复原样。这里我们只改变最后一个li

$(document).ready(function() {

   $("#orderedlist li:last").hover(function() {

     $(this).addClass("green");

   },function(){

     $(this).removeClass("green");

   });

 });

 

还有许多其他的选择器是类似于cssXPath的语法的,更多的例子和变量、表达式可以在这里找到

 

onClickonChangeonSubmit这样的onXxxxx事件在jQuery中都有相对应的方法。这里jQuery中的事件列表,他们都是作为方法为某种任务提供的,可以很方便的使用他们。

 

你可以在jQuery Events Documentation中找到所有的jQuery事件。

 

用这些选择器和事件你可以做很多工作,但你要记住,还会有更多的

$(document).ready(function() {

   $("#orderedlist").find("li").each(function(i) {

     $(this).append( " BAM! " + i );

   });

 });

find()方法可以找到指定元素的后代(descendants)(子元素),所以$(“#orderedlist”).find(“li”)等价于$(“#orderedlist > li”)$(“#orderedlist li”)

 

each()方法迭代所有的元素并做进一步的处理。有很多方法他们本身就使用了each()方法,比如addClass()

 

在这个例子中,append()方法用来为元素附加上一段文本,而且是加在元素值的后面的。

 

另外,我们还经常需要调用一些jQuery中没有包含的方法来设置dom元素,比如,用Ajax提交表单完成之后要重置表单的例子:

$(document).ready(function() {

   // use this to reset a single form

   $("#reset").click(function() {

     $("form")[0].reset();

   });

 });

在这段代码中,把第一个form重置了,如果在通一个页面中有更多的form,并且都需要重置,你可以:

$(document).ready(function() {

   // use this to reset several forms at once

   $("#reset").click(function() {

     $("form").each(function() {

       this.reset();

     });

   });

 });

上面的代码,可以选择页面(或文档 document)中的所有的form,并为他们调用reset()方法。注意:在一个.each()函数中,this 引用的是当前正在活动的元素。并且还要记住,reset()方法是属于form元素的,而不是jQuery对象,我们不能简单的使用$(“form”).reset()来重置页面上多有的表单。

 

好了,现在我们面临一个更大的挑战:从一组相似或相同的元素中摘取出某个特定的元素。

jQuery为这样的需求提供了filter()not()方法,filter()方法根据过滤条件来缩减选取元素的范围,而not()方法做的工作却是与之相反的,not()方法会排除掉那些适合过滤条件的元素。(While filter() reduces the selection to the elements that fit the filter expression, not() does the contrary and removes all elements that fit the expression.

我们造一个需求出来:我们们想在一个无序的listunordered list)里选取出所有没有ul子元素的li元素。

$(document).ready(function() {

   $("li").not(":has(ul)").css("border", "1px solid black");

 });

这里,我们选择了除了有ul子元素的所有的li元素,并为他们加上了边框。

This selects all li elements that have a ul element as a child and removes all elements from the selection. Therefore all li elements get a border, except the one that has a child ul.

 

[expression]的语法来自于XPath,它可以作为条件来过滤元素的属性。也许你现在想从页面中摘取出所有有name属性的a标签,那么来看看你该怎么做吧:

$(document).ready(function() {

   $("a[name]").css("background", "#eee" );

 });

这里我们给所有拥有name属性的a标签设置了背景色。

 

比起用name属性作为过滤条件来选取a标签,更常见的是用href属性做为条件,由于各个浏览器对于处理链接返回值的方式很不相同,这是会出问题的This can be a problem as browsers behave quite inconsistently when returning what they think the "href" value is)(注意:这个问题已经在1.1.1版本后的版本中解决啦^_^)。为了匹配其中的一部分,我们可以用“包含选择”:*= 来代替等号:=

$(document).ready(function() {

   $("a[href*=/content/gallery]").click(function() {

     // do something with all links that point somewhere to /content/gallery

   });

 });

 

直到现在,我们讲的选择器都是用来选取子元素或是过滤选取。那么如果我们想选取该元素的兄弟元素该怎么办呢?想象下,一个FQA页面,刚开始所有的答案都是隐藏的,当你点击的时候才显示出来,在jQuery中是这么做的:

$(document).ready(function() {

   $('#faq').find('dd').hide().end().find('dt').click(function() {

     $(this).next().slideToggle();

   });

 });

这里我们有了链式方式(chaining)来减少代码量并且获得更好的执行效率。

end()方法:返回第一个find()(即find(‘dd’))操作之前的匹配的元素集合。这样我们就可以继续在$(“#faq”)元素集合里执行第二个find()(即find(‘dt’))方法了。

 

click()方法中有一个匿名函数,当click句柄执行的时候,用$(this).next()来找到当前dt元素的下一个兄弟元素(dd),这样我们很快的就找到了当前问题的答案,并设置其为隐藏或显示。

 

 

分享到:
评论

相关推荐

    jqueryjquery v1.3.2

    《jQuery v1.3.2:经典版本的深入解析》 jQuery,作为一款广泛使用的JavaScript库,极大地简化了网页的DOM操作、事件处理、动画设计和Ajax交互。本篇文章将聚焦于jQuery v1.3.2这一经典版本,探讨其核心特性、功能...

    jQuery Frontier Calendar 1.3.2

    jQuery Frontier Calendar 是整整一个月的 jQuery 日历插件,外观有点像 Google Calendar 。所有 UI 元素(比如下个月和上个月按钮,添加事件表格,工具提示等等)都不属于日历插件。用户可以使用 API 来控制这些...

    JQuery1.3.2

    JQuery1.3.2JQuery1.3.2JQuery1.3.2JQuery1.3.2JQuery1.3.2JQuery1.3.2JQuery1.3.2

    jquery-1.3.2(类裤1.32)——jquery-1.3.2.rar

    jQuery JavaScript Library v1.3.2 jQuery JavaScript内库 v1.3.2 压缩包内容:jquery-1.3.2.js(118kb)+jquery-1.3.2.min.js(56kb) 平常开发时使用jquery-1.3.2.js方便查看。jquery-1.3.2.min.js和jquery-1.3.2...

    JQuery(jquery-1.3.2.js)

    JQuery(jquery-1.3.2.js)

    JQuery1.3.1和1.3.2库

    这个压缩包包含的是JQuery的两个早期版本:1.3.1和1.3.2。这两个版本在当时是非常流行的,为开发者提供了丰富的API和功能,使得前端开发变得更加高效。 JQuery 1.3.1 是该库的一个重要里程碑。在这个版本中,JQuery...

    jquery-1.3.2.js和jquery.min-1.3.2.js

    《jQuery 1.3.2:深入理解与应用》 jQuery是JavaScript库的杰出代表,以其简洁、易用的API闻名于世。本篇将详细探讨jQuery 1.3.2版本,包括其核心功能、优化特性以及在实际项目中的应用。 首先,jQuery的核心理念...

    jquery1.3.2手册

    《jQuery 1.3.2 手册》是前端开发者必备的参考资料,它详细阐述了jQuery库在1.3.2版本中的各项功能和用法。jQuery是一个强大的JavaScript库,它简化了HTML文档遍历、事件处理、动画设计和Ajax交互。通过这个手册,...

    jquery-1.3.2.min.js

    《jQuery 1.3.2:深入理解与应用》 jQuery是JavaScript库的杰出代表,以其简洁、高效的语法设计赢得了全球开发者的喜爱。在本文中,我们将深入探讨jQuery 1.3.2这一版本,包括它的核心特性、API文档以及实际应用...

    jquery-1.3.2.js

    《jQuery 1.3.2:JavaScript 动态交互的核心》 jQuery,作为一款轻量级的JavaScript库,自发布以来就深受开发者喜爱,尤其在jQuery 1.3.2这个版本中,它进一步强化了对DOM操作、事件处理、动画效果以及Ajax交互的...

    jquery类库jquery 1.3.2.js文件

    标题中的“jquery 1.3.2.js”指的是jQuery库的一个特定版本,即1.3.2。这个版本发布于2009年,是jQuery历史上的一个重要里程碑,虽然现在已经有了更新的版本,但1.3.2仍然被一些项目所使用,因为它是稳定且兼容性...

    Jquery 最新版1.3.2

    1.3.2版本是jQuery历史上的一个重要里程碑,它在1.x系列中提供了许多改进和新特性,旨在提升性能、增强兼容性和简化代码。以下是关于jQuery 1.3.2版本的一些关键知识点: 1. **链式操作**:jQuery的核心设计之一...

    jQuery & jQuery UI 1.3.2离线AIR版手册

    《jQuery & jQuery UI 1.3.2离线AIR版手册》是一份全面介绍jQuery及其UI库的资源,特别适合开发者在无网络环境下查阅。这个手册包含即时搜索功能,使得开发者能够快速找到所需的信息,提高了开发效率。jQuery是广泛...

    jquery-1.3.2和jquery-1.3.2.min和popup_layer

    本文将深入探讨标题中的"jquery-1.3.2"、"jquery-1.3.2.min"以及"popup_layer"这三个关键词所代表的知识点,并提供相关的应用和理解。 首先,我们来看"jquery-1.3.2",这是jQuery库的一个特定版本,发布于2009年。...

    jquery-1.3.2 压缩版+非压缩版

    jquery-1.3.2 压缩版+非压缩版,另附压缩版引用地址: 百度压缩版引用地址: &lt;script src="http://libs.baidu.com/jquery/1.3.2/jquery.min.js"&gt; 微软压缩版引用地址: &lt;script src="http://ajax.aspnetcdn.com/ajax/...

    jquery-1.3.2-vsdoc.js

    《jQuery 1.3.2 VSDOC.js:Visual Studio 插件详解及应用实践》 在Web开发领域,jQuery库以其简洁、易用的API和强大的功能深受开发者喜爱。而`jquery-1.3.2-vsdoc.js`是jQuery 1.3.2版本的一个特殊文件,它是专为...

Global site tag (gtag.js) - Google Analytics