• jQuery选择器(精华一)


    jQuery选择器

    jQuery选择器是什么?

    jQuery选择器是jQuery库中非常重要的部分之一。它支持网页开发者所熟知的CSS语法快速轻松地对页面进行设置。了解jQuery选择器是打开高效开发jQuery之门的钥匙。一个典型的jQuery选择器句法形式:
    $(selector).methodName();
    selector是一个字符串表达示,用于识别DOM中的元素,然后使用jQuery提供的方法集合加以设置。
    大多数情况下jQuery支持这样的操作:
    $(selector).method1().method2().method3();
    这个实例表示隐含DOM中id=”goAway”的元素,然后为其添加一个class=”incognito”属性。
    $(’#goAway’).hide().addClass(’incognito’);
    提示一下:当选择器表达示匹配多个元素时,可以象JavaScritp数组操作一样,方便灵活地利用数组指针进行选取。这是例子:
    var element = $(’img’)[0];
    匹配表达示的元素中,第一个元素对象将赋给变量element。

    jQuery选择器的分类

    有三种分类:基本选择器,位置选择器和自定义选择器。可以将基本选择器理解为“发现型选择器”,事实上它用于搜索DOM中的元素。位置选择器和自定义选择器更像是“筛选型选择器”。

    基本选择器

    这里提供了一份基本选择器的参考实例。这些选择器都支持CSS3语法准标和语议。

    $(‘div’) 选取所有<div>元素。

    $(‘fieldset a’) 选择在<fieldset>元素内出现的所有<a>元素。

    $(‘li>p’) 选取在<li>标记中直接出现的所有<p>元素。

    $(‘div~p’) 选取位为<div>标记之后出现的所有<p>元素。

    $(‘p:has(b)’) 选取<p>元素内包含有<b>的所有元素。

    $(‘div.someClass’) 选取<div>元素中出现class=”someClass”属性的所有元素。

    $(‘.someClass’) 选取出现class=”someClass”属性的所有元素。

    $(‘#testButton’) 选取id=”testButton”的元素。元素id属性值在当前DOM中是唯一的。因此我很好奇出现了两个id=”testButton”的元素时它会怎么选。实验证明它只会选取第一个元素。真正的开发过程中,我们绝对不要在一个DOM中出现多个id相同的元素。

    $(‘img[alt]’) 选取具有alt属性的所有<img>元素。

    $(‘a[href$=.pdf]’) 选取具有href属性,而且属性的值以.pdf结尾的所有<a>元素。

    $(‘button[id*=test]’) 选取所有的按钮,但按钮的id属性要包含”test”。

    提示一下:在同一个$()结构中可以用“,”来连接多个不同的选择器,比如这样:

    $(’div,p’)

    以下是匹配所有具有title属性的<div>元素,和所有具有alt属性的<img>元素:

    $(’div[title],img[alt]‘)

    位置选择器

    这种类型的选择器可以附加到任何基本选择器上,用于进行基于元素位置的筛选。如果缺省基本选择器,则将被视为所有元素。

    举一些例子吧。

    $(’p:first’) 选取页面中第一个出现的<p>元素。

    $(’img[src$=.png]:first’) 选取页面中第一个出现src属性值以.png结尾的<img>元素。

    $(’button.small:last’) 选取页面中最后一个出现class=”small”的按钮元素。

    $(’li:first-child’) 选取页面中所有<li>列表的第一项元素。

    $(’a:only-child’) 选取页面中所有<a>元素,但这些元素只能位于一个父级元素内。比如<li><a href=”url”>An url</a></li>,此时<li>内的<a>是匹配的。

    $(‘li:nth-child(2)’) 选取父级元素中第二个<li>元素。<li>也一家要位于一个父级元素内。比如<ul>
    <li>1</li>
    <li>2</li>
    </ul>

    此时<li>2</li>是匹配的。

    $(’tr:nth-child(odd)’) 选取表格中所有为奇数的行元素。

    $(‘li:nth-child(3n)’) 在父级元素中有很多个<li>元素,但只选取隔3次出现的<li>元素。比如

    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    </ul>

    其中<li>3</li>,<li>6</li>匹配。

    $(’li:nth-child(3n+5)’) 带有偏移量的选取。在父级元素中只选取从第5个<li>元素开始每隔3次出现的<li>元素。比如

    <ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    <li>4</li>
    <li>5</li>
    <li>6</li>
    <li>7</li>
    <li>8</li>
    </ul>

    其中<li>5</li>,<li>8</li>匹配。

    $(‘.someClass:eq(1)’) 选取页面中class=”someClass”的第二个元素。jQuery以0为基准,因此(1)表示相当于第2个。

    $(‘.someClass:gt(1)’) 选取页面中所有class=”someClass”的元素,除了开头两个。

    $(‘.someClass:lt(4)’) 只选取页面中所有class=”someClass”元素中最先的4个元素。

    自定义选择器

    jQuery提供这类的选择器用于在并不期望有CSS明确规定时,对元素进行方便快捷地选取。自定义选择器有可能会被组合起来,来看一看这些强大的选择器实例。

    $(’img:animated’) 选取所有刚刚经历完动画方法调用的<img>元素。

    $(’:button:hidden’) 选取所有被hide()方法隐含的按钮类型元素。

    $(’input[name=myRadioGroup]:radio:checked’)选取name=”myRadioGroup”的单选框内被选中的项目。

    $(’:text:disabled’) 选取所有被禁用的文本框元素。

    $(’#xyz :header’) 选取id=”xyz”元素内的所有<h>元素。

    $(’option:not(:selected)’) 选取没有被选中的所有的<option>元素。

    $(’#myForm button:not(.someClass)’) 选取id=”myForm”的表单内不具有class=”someClass”属性的所有按钮。

    $(’select[name=choices] :selected’) 选取name=”choices”的<select>元素中所有被选中的<option>项。

    $(’p:contains(coffee)’) 选取所有内容包含有coffee的<p>元素。

    无论是单一的或是组合,jQuery选择器能创建强大而简便的一套方案,便于jQuery内置的一些方法地行极富想像力的WEB开发。

    待续……

    转自:http://www.lzby.net/?p=6

  • 相关阅读:
    LA 2038 Strategic game(最小点覆盖,树形dp,二分匹配)
    UVA 10564 Paths through the Hourglass(背包)
    Codeforces Round #323 (Div. 2) D 582B Once Again...(快速幂)
    UVALive 3530 Martian Mining(贪心,dp)
    UVALive 4727 Jump(约瑟夫环,递推)
    UVALive 4731 Cellular Network(贪心,dp)
    UVA Mega Man's Mission(状压dp)
    Aizu 2456 Usoperanto (贪心)
    UVA 11404 Plalidromic Subsquence (回文子序列,LCS)
    Aizu 2304 Reverse Roads(无向流)
  • 原文地址:https://www.cnblogs.com/fengju/p/6174020.html
Copyright © 2020-2023  润新知