Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58962
  • 博文数量: 7
  • 博客积分: 188
  • 博客等级: 入伍新兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2012-01-11 01:05
个人简介

自由软件工程师,come on, 改变世界的力量!

文章分类
文章存档

2013年(5)

2012年(2)

分类: 系统运维

2013-01-06 22:43:14

不学习不行啊,我擦,努力吧少年。

Chapter 2: Selecting Elements 选择元素

jQuery库驾驭了CSS选择器使得我们很容易访问DOM元素或者一组元素。

The Document Object Model
jQuery最强大的功能之一就是使得选择DOM元素变得容易。DOM是JS和web页面的接口,它将HTML抽象为一些对象的网络而不是普通文本。
这个网络就像一个家庭树,下面是一个简单的例子:

  1. the title
  2. This is a paragraph.

  3. This is another paragraph.

  4. This is yet another paragraph.

  • 需要指出的是,选择元素被包裹在jQuery object中,这不同于原始DOM元素。本章最后再看如何直接访问DOM元素。

    The $() function
    这个函数"$()"就是jQuery选择器,它接收一个参数,返回指向所选元素的jQuery对象。
    三中基础的选择方法如下
    1、Tag name, CSS: p{ }; jQuery:$('p');
    2、ID, CSS: #some-id{ };jQuery:$('#some-id');
    3、Class, CSS: .some-class{}; jQuery:$('.some-class');
    看下面这个例子,一个常见的无序的list

    1. <ul id="selected-plays">
    2.     <li>Comedies
    3.         <ul>
    4.         <li><a href="/asyoulikeit/">As You Like It</a></li>
    5.         <li>All's Well That Ends Well

    6.         
    7. A Midsummer Night's Dream</li>
    8.         <li>Twelfth Night</li>
    9.         </ul>
    10.     </li>
    11.     
    12.     <li>Tragedies
    13.         <ul>
    14.         <li><a href="hamlet.pdf">Hamlet</a></li>
    15.         <li>Macbeth</li>
    16.         <li>Romeo and Juliet</li>
    17.         </ul>
    18.     </li>
    19.     
    20.     <li>Histories
    21.         <ul>
    22.         <li>Henry IV (<a href="mailto:henryiv@king.co.uk
    23.         ">email</a>)
    24.             <ul>
    25.             <li>Part I</li>
    26.             <li>Part II</li>
    27.             </ul>
    28.             
    29.             <li><a href="">
    30.             Henry V
    31.             </a></li>
    32.             
    33.             <li>Richard II</li>
    34.         </ul>
    35.     </li>
    36. </ul>
    不加任何style,看起来像这样:
    • Comedies
      • All's Well That Ends Well
      • A Midsummer Night's Dream
      • Twelfth Night
    • Tragedies
      • Macbeth
      • Romeo and Juliet
    • Histories
      • Henry IV ()
        • Part I
        • Part II
      • Richard II
    (今天到这,明天继续)
    继续:
    先插一个基本的前端网站工程(第一章讲的内容),由index.html my.js my_style.css三个文件组成。index.html代码如下(这里我把jquery-1.8.3.js下载到了本地):

    1. <!DOCTYPE html>

    2. <html lang="en">
    3.     
    4.     <head>
    5.         <meta charset="utf-8">
    6.         <title>You like</title>
    7.         <link rel="stylesheet" href="my_style.css">
    8.         <script src="jquery-1.8.3.js"></script>
    9.         <script src="my.js"></script>
    10.     </head>
    11.     
    12.     <body>
    13.     
    14.     </body>
    15.     
    16. </html>
    Styling list-item levels
    假设我们想让最顶层的列表项水平排列,而不是垂直排列,我们定义一个水平样式表类:

    1. .horizontal {
    2.     float: left;
    3.     list-style: none;
    4.     margin: 10px;
    5. }
    这个水平样式表类让元素浮在左边,并且每一边有10px的空隙。
    不是直接将horizontal类用到HTML上,我们用jQuery动态的实现:

    1. $(document).ready(function() {
    2.     $('#selected-plays > li').addClass('horizontal');
    3. });
    这里'>'是子连接器的意思,选择所有的li元素并且它们是#selected-plays的子一级。这样之后就是水平排列了。
    选择不是最顶层的list项,可以用没有horizontal类的伪类,代码如下:

    1. $(document).ready(function() {
    2. $('#selected-plays > li').addClass('horizontal');
    3. $('#selected-plays li:not(.horizontal)').addClass('sub-level');
    4. });
    Attribute selectors
    属性选择器,例如选择带有alt属性的images,可以如下
    $('img[alt]')
    可以用正则表达式来选择,举例如下:

    1. $('a[href^="mailto:"]').addClass('mailto');
    2. $('a[href$=".pdf"]').addClass('pdflink');
    3. $('a[href^="http"][href*="henry"]').addClass('henrylink');
    第一个是的属性href以"mailto:"字符串开头。











    阅读(1015) | 评论(1) | 转发(0) |
    给主人留下些什么吧!~~

    twozh2013-01-07 22:57:53