现在的位置: 首页 > 综合 > 正文

jQuery学习(二) jQuery选择器

2012年05月04日 ⁄ 综合 ⁄ 共 4070字 ⁄ 字号 评论关闭

      jQuery选择器$()是jQuery的核心部分,他能够精确查找页面中的元素。
      $()函数不需要像普通的JavaScript代码来遍历一组元素,它能够帮我们自动遍历,下面来看看jQuery常用的选择器。

  1. CSS选择器类型

    • 标签形式:$('p'),这将获得页面中所有的p元素,可以在jQuery中这样写:$('p').addClass('.para'),这样就为整个页面的p元素都添加了样式类.para。
    • CSS的ID选择器形式:$('#thisid'),将会获得id='thisid'的元素,同样可以通过addClass()方法为该元素添加样式规则。
    • 类似CSS的类选择器形式:$('.content'),将会得到class="content"的所有元素(比如<div class="content"></div>)。
  2. XPath选择器类型 

            XML 路径语言(XPath)是一种在 XML 文档中指定不同元素或者它们的值的语言,它与CSS HTML 文档中指定元素的方法相类似。jQuery 库支持支持一套基本的 XPath 选择器,如果我们想的话,我们可以让它与 CSS 选择器一起工作。使用 jQuery,不管文档的类型如何,我们都可使用 XPath CSS 选择器。

  •             jQuery 使用 XPath 指定属性的约定,属性通过在方括号里用 @ 符号作为前缀指定,而不是用 CSS 的方法,它缺乏灵活性。例如,选择所有带有 title 属性的链接,我们会这样写:$('a[@title]')

  •             XPath 语法允许方括号不使用 @ 的用法来指定一个元素。例如,我们可用下面的选择器表达式来得到所有包含至少一个 ol 元素的 div 元素:$('div[ol]') 

        3.   自定义选择器
              对于各种的CSS和XPath选择器,jQuery加入了它自定义的选择器,大部分的自定义选择器能让我们在一个队列外选择一些元素。它的语法和CSS伪类语法类似(不知道Learning Jquery这本书为什么不把这种形式也归结到CSS类型选择器中),即选择器以冒号开头。例如我们想从一组匹配选择带有horziontal类的div中选择第二项,可以这样写:
    $('div.horziontal:eq(1)'); //eq(1)是获得第二项

          通过上述3种jQuery选择器,我们很容易就能找到页面中的元素,而且代码也不会长。这样就很利于我们操作页面元素,也节省了时间。
                

     

      1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      2<html xmlns="http://www.w3.org/1999/xhtml">
      3<head>
      4    <title></title>
      5    <style type="text/css">
      6        html, body
      7        {
      8            margin: 0;
      9            padding: 0;
     10        }

     11        body
     12        {
     13            font-family: Arial, Verdana, sans-serif;
     14            font-size: 12px;
     15            color: #000;
     16            background: #fff;
     17        }

     18        li
     19        {
     20            padding-top: 10px;
     21            padding-left: 6px;
     22        }

     23        .horizontal
     24        {
     25            float: left;
     26            list-style: none;
     27            margin: 10px;
     28        }

     29        .sub-level
     30        {
     31            background: #ffc;
     32        }

     33        a
     34        {
     35            color: #00f;
     36        }

     37        a.mailto
     38        {
     39            color: #f00;
     40        }

     41        a.pdflink
     42        {
     43            color: #090;
     44        }

     45        a.mysite
     46        {
     47            text-decoration: none;
     48            border-bottom: 1px dotted #00f;
     49        }

     50        .table-heading
     51        {
     52            background-color: #ff0;
     53        }

     54        th
     55        {
     56            text-align: left;
     57        }

     58        .odd
     59        {
     60            background-color: #ffc;
     61        }

     62        .even
     63        {
     64            background-color: #cef;
     65        }

     66        .highlight
     67        {
     68            color: #f00;
     69            font-weight: bold;
     70        }

     71        td
     72        {
     73            color:#fff;
     74        }

     75        .table_header
     76        {
     77            background:red;
     78            color:Blue;
     79            font-size:14px;
     80        }

     81        .table_odd
     82        {
     83            background:#333;
     84        }

     85        .table_even
     86        {
     87            background:#666;
     88            
     89        }

     90        .high
     91        {
     92            color:Red;
     93            font-weight:bold;
     94        }

     95    
    </style>
     96
     97    <script type="text/javascript" src="Scripts/jQuery.1.2.6.zh-cn-vsdoc.js"></script>
     98
     99    <script type="text/javascript">
    100        $(document).ready(function() {
    101        $('#selected-plays>li').addClass('horizontal'); //这里>号是jQuery的子选择符,#selected-plays>li 的意思就是id为selected-plays的直接子代(而二代以下不会算进来)
    102        $('#selected-plays li:not(.horizontal)').addClass('sub-level'); //#selected-plays li给#selected-plays底下的所有li(包括二代,三代等)添加样式,但不包括li样式为horizontal的,在这里也就是为非直接子代添加样式,因为上面已经为直接子代添加了horizontal样式
    103            
    104        }
    );
    105        $(document).ready(function(event) {
    106            //^相当于正则表达式中的开始,$则相当于结尾
    107            $('a[@href^="mailto:"]').addClass('mailto');//给a标签中包含href属性的,并且href以maito:开头的添加样式
    108            $('a[@href$=".pdf"]').addClass('pdflink'); //给a标签中包含href属性的,并且href以.pdf结尾的添加样式
    109            $('a[@href*="mysite"]').addClass('mysite'); //给a标签中包含href属性的,并且href中包含mysite的添加样式
    110        }
    );
    111

    抱歉!评论已关闭.