JQuery学习记录(一)

上一篇 / 下一篇  2010-02-03 08:06:57 / 个人分类:读书笔记

    
 一.入门
    1.javascript是解释型语言,所以使用它不用编译或构建,只要在使用到jquery时,在相关的html文档中简单地引用该库文件的位置。一般,jquery应用示例包括三个部分:html文档、为文档添加样式的css文件和为文档添加行为的javascript文件。
    2.文件中指向另一个文件的引用,使用相对路径(../images/foo.pgn)而不是绝对路径(/images/foo.png),这样,不需要使用web服务器就能在本地运行代码。
    3.使用jquery埋页面样式修改的简单例子:
    只需要三行代码:
    $(document).ready(function(){
        $('.poem-stanza').addClass('emphasized');
    }) 其中包括三个步骤
        a)查找要操作的页面元素
            通过$()结构来完成,这个结构需要一个字符串参数,参数中可以包含任何CSS选择符表达式。如要找所有应用了poem-stanza类的文档元素,使用$('.poem-stanza')即可。$()函数实际上是jquery对象的一个制造工厂,jquery对象会封装0个或多个dom元素。
        b)指定操作,这里为添加样式
            用.addClass()将一个CSS类应用到之前选择的页面元素。调用一次就可以对选择的所有元素进行修改而不是一个个的去迭代。
        c)执行代码
            如果将上面两步的代码放到页面头部,javascript代码在浏览器初次遇到它们时会执行,但在浏览器处理头部时,HTML还不会呈现样式。因此,我们需要将代码延迟到DOM可用时再执行。
            控制javascript代码何时执行的传统机制是在事件处理函数中调用代码。如果没有jquery,需要依靠onload处理函数。先将先前代码放到一个函数中,再用<body nload="emphasizePoem();">来完成调用。这种方法的缺点在于:为了添加行为,我们修改了HTML代码,这种结构与功能紧密耦合的做法,会导致代码混乱。很多页面都可能需要重复调用相同的函数,或者在处理鼠标单击之类的事件时,页面每个元素的实例也可能需要反复调用相同的函数。这样,添加新的行为涉及到两个不同位置的改动。
            jquery允许我们使用$(document).ready()结构预定DOM加载完成后(不必等待图像加载完成)触发的函数调用。这种技术不需要对HTML进行任何修改,所有行为完全从javascrpipt文件内部添加。
            定义只使用一次的函数有点低效率,使用匿名函数来解决这个问题。当在另一个函数主体内使用这种语法定义了一个匿名函数时,就创建了一个闭包。

二.选择符--取得你想要的一切
    1.jquery利用了CSS和Xpath选择符的能力,让我们在DOM中快捷轻松地获取元素或元素组。无论使用哪种类型的选择符(CSS、Xpath、还是自定义选择符),都要从一个美元符号和一对圆括号开始:$()。
    2.常用简单例子:
    标签名:$('p')会取得文档中所有的段落
    ID:$('#some-id')取得文档中具有对应的some-id的一个元素
    类:$('.some-class')取得文档中带有some-class类的所有元素
    3.复杂一点的例子
    $('#selected-plays > li')的含义:查找ID为selected-plays的元素(#secected-plays)的子元素(>)中所有的列表项(li)
    $('#slected-plays li:not(.horizontal)')的含义:
        取得的每个列表项(li):
        a)是ID为selected-plays的元素(#secected-plays)的后代元素
        b)没有horiaontal类
    3.XPath(XML路径语言)是在XML文档中识别不同元素或元素值的一种语言。
    4.简单例子:
    $('a[@title]'):选择所有带有title属性的链接。这是[]来指定属性选择符的办法,使用了@符号
    $('div[ol]'):取得包含一个ol元素的所有div元素。[]的另一种用法,在不带前置@符号情况下,用来指定包含在另一个元素中的元素。
    5.属性选择符允许以类似正则表达式的语法来标识字符串的开始(^)和结尾($),而且,也可以使用(*)表示字符串的任意位置。如
    $('a[@href^="mailto:"]'):寻找所有带有href属性([@href])且以mailto开头(^="mailto:")的锚元素。
    $('a[@href$=".pdf"]'):录供所有带有href属性且以.pdf结尾的锚元素
   

待续.......
  
   

 


TAG:

 

评分:0

我来说两句

Open Toolbar