jQuery学习——基本筛选

:animated Selector

描述: 选择所有正在执行动画效果的元素.

注意:  如果您使用一个自定义的jQuery绑定一个没有效果模块, :animated选择器会抛出一个错误。

Additional Notes:(其他注意事项:)

  • 因为:animated 是一个 jQuery 延伸出来的选择器,并不是的CSS规范的一部分,使用:animated 查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了当使用:animated 的时候在现代浏览器上获得更佳的性能,首先使用纯CSS选择器选择元素,然后使用.filter(":animated").

改变正在执行动画的 div 的颜色。

<!DOCTYPE html>
<html>
<head>
  <style>
  div { background:yellow; border:1px solid #AAA; width:80px; height:80px; margin:0 5px; float:left; }
  div.colored { background:green; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <button id="run">Run</button>
 
  <div></div>
  <div id="mover"></div>
  <div></div>
<script>
 
    $("#run").click(function(){
      $("div:animated").toggleClass("colored");
    });
    function animateIt() {
      $("#mover").slideToggle("slow", animateIt);
    }
    animateIt();
</script>
 
</body>
</html>

:eq() Selector

描述: 在匹配的集合中选择索引值为index的元素。

  • jQuery( ":eq(index)" )

    index: 要匹配元素的索引值(从0开始计数)

  • 添加的版本: 1.8jQuery( ":eq(-index)" )

    -index: 要匹配元素的索引值(从0开始计数), 从最后一个元素开始倒计数

这种索引值相关的选择器(:eq():lt():gt():even:odd)过滤他们前面的匹配表达式的集合元素。进一步筛选的依据就是这个元素在原先匹配集合中的顺序。例如,如果第一个选择器使用类选择器( .myclass )进行匹配,四个元素返回,这些元素是给定索引是03

请注意,由于JavaScript数组使用基于0的索引 ,这些选择器也是如此。这就是为什么$('.myclass:eq(1)')选择器选择文档中第二个MyClass类的元素,而不是第一个。与此相反,:nth-child(n)基于1的索引的,以符合CSS规范。

在jQuery 1.8之前,:eq(index)接受负值所引值(虽然.eq(index)方法接受)。

其他注意事项:

  • 因为 :eq() 是一个 jQuery 延伸出来的选择器,并不是的CSS规范的一部分, 使用:eq()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用$("your-pure-css-selector").eq(index)代替。

查找第三个 td。

<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <table border="1">
  <tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
  <tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
  <tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
</table>
<script>$("td:eq(2)").css("color", "red");</script>
 
</body>
</html>

在列表项目中应用三种不同的样式,以此来展示 :eq() 只会选择一个元素,而 :nth-child() 或 :eq() 会像 .each() 一样,有类似循环的构造,从而选择多个元素。

!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <ul class="nav">
   <li>List 1, item 1</li>
   <li>List 1, item 2</li>
   <li>List 1, item 3</li>
</ul>
<ul class="nav">
  <li>List 2, item 1</li>
  <li>List 2, item 2</li>
  <li>List 2, item 3</li>
</ul>
 
<script>
/* applies yellow background color to a single <li> */
$("ul.nav li:eq(1)").css( "backgroundColor", "#ff0" );
 
/* applies italics to text of the second <li> within each <ul class="nav"> */
$("ul.nav").each(function(index) {
  $(this).find("li:eq(1)").css( "fontStyle", "italic" );
});
 
/* applies red text color to descendants of <ul class="nav"> */
/* for each <li> that is the second child of its parent */
$("ul.nav li:nth-child(2)").css( "color", "red" );
</script>
 
</body>
</html>

Add a class to List 2, item 2 by targeting the second to last <li>

<script>$( "li:eq(-2)" ).addClass( "foo" )</script>

:even Selector

描述: 选择所引值为偶数的元素,从 0 开始计数。 也可以查看 odd.

特别地注意的是,这是基于0的索引,所以:even选择器是选择第一个元素,第三个元素,依此类推在匹配。

Additional Notes:(其他注意事项:)

  • 因为:even 是一个 jQuery 延伸出来的选择器,并不是的CSS规范的一部分,使用:even 查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了当使用:even 的时候在现代浏览器上获得更佳的性能,首先使用纯CSS选择器选择元素,然后使用.filter(":even").
  • 查找表格中索引值是偶数的行(即实际表格中的奇数行),即匹配第一行、第三行、第五行等 (索引值是 0, 2 ,4 等 )。

Finds even table rows, matching the first, third and so on (index 0, 2, 4 etc.).

<!DOCTYPE html>
<html>
<head>
  <style>
  table {
    background:#eeeeee;
  }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <table border="1">
    <tr><td>Row with Index #0</td></tr>
    <tr><td>Row with Index #1</td></tr>
 
    <tr><td>Row with Index #2</td></tr>
    <tr><td>Row with Index #3</td></tr>
  </table>
<script>$("tr:even").css("background-color", "#bbbbff");</script>
 
</body>
</html>

:first Selector

描述: 选择第一个匹配的元素。

:first伪类选择器相当于:eq(0)。它也可以写为:lt(1)。虽然:first只匹配一个单独的元素,但是:first-child选择器可以匹配多个:即为每个父级元素匹配第一个子元素。

Additional Notes(其他注意事项):

  • 因为 :first() 是一个 jQuery 延伸出来的一个选择器。 并且不是的CSS规范的一部分, 使用:first()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用.filter(":first")代替。
  • 被选中的元素按照他们在文档中出现的顺序。
<script>$("tr:first").css("font-style", "italic");</script>

:gt() Selector

描述: 选择匹配集合中所有大于给定index(索引值)的元素。

  • jQuery( ":gt(index)" )

    index: 从0开始计数的索引值。

  • version added: 1.8jQuery( ":gt(-index)" )

    -index: 从0开始计数的索引值。 从最后一个元素开始反向计数。

给TD#5高亮的黄色背景和TD#8个红色的文字颜色。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>gt demo</title>
  <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
</head>
<body>
 
<table border="1">
  <tr><td>TD #0</td><td>TD #1</td><td>TD #2</td></tr>
  <tr><td>TD #3</td><td>TD #4</td><td>TD #5</td></tr>
  <tr><td>TD #6</td><td>TD #7</td><td>TD #8</td></tr>
</table>
<script>
$( "td:gt(4)" ).css( "backgroundColor", "yellow" );
$( "td:gt(-2)" ).css( "color", "red" );
</script>
 
</body>
</html>

 :header Selector

描述: 选择所有标题元素,像h1, h2, h3 等.

Additional Notes:

  • 因为 :header() 是一个 jQuery 延伸出来的一个选择器 并且不是的CSS规范的一部分, 使用:header()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用.filter(":header")代替。
<script>$(":header").css({ background:'#CCC', color:'blue' });</script>

:lang Selector

描述: 选择指定语言的所有元素。

:lang选择器,匹配有一个语言值等于所提供的语言代码,或以提供的语言代码开始,后面马上跟一个“ - ”的元素。例如,选择器$("div:lang(en)")将匹配<div lang="en"> and <div lang="en-us">(和他们的后代<div>),但不包括<div lang="fr">

对于HTML元素,语言值由lang属性决定,也可能由来自meta元素或HTTP头信息决定。

这种用法的进一步讨论可以在 W3C CSS规范中找到。

不理解这题

<!DOCTYPE html>
<html>
<head>
  <style>
body { background-color: #ccc; }
h3 { margin: .25em 0; }
div { line-height: 1.5em}
.usa { background-color: #f00; color: #fff; }
.usa .usa { background-color: #fff; color: #000; }
.usa .usa .usa { background-color: #00f; color: #fff; }
 
.spain { background-color: #f00; color: #ff0; }
.spain .spain { background-color: #ff0; color: #f00; line-height: 3em; }
.spain .spain .spain { background-color: #f00; color: #ff0; line-height: 1.5em; }
</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
 
<h3>USA</h3>
<div lang="en-us">red
  <div>white
    <div>and blue</div>
  </div>
</div>
<h3>España</h3>
<div lang="es-es">rojo
  <div>amarillo
    <div>y rojo</div>
  </div>
</div>
 
<script>
$( "div:lang(en-us)" ).addClass( "usa" );
$( "div:lang(es-es)" ).addClass( "spain" );
</script>
 
</body>
</html>

:last Selector

描述: 选择最后一个匹配的元素。

注意:last选择一个过滤和匹配当前jQuery集合在它的最后一个单独的元素。

Additional Notes(其他注意事项):

  • 因为 :last 是一个 jQuery 延伸出来的一个选择器 ,并且不是的CSS规范的一部分, 使用:last查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用.filter(":last")代替。
<script>$("tr:last").css({backgroundColor: 'yellow', fontWeight: 'bolder'});</script>

:lt() Selector

描述: 选择匹配集合中所有索引值小于给定index参数的元素。

  • jQuery( ":lt(index)" )

    index: 从 0 开始计数的索引值。

  • version added: 1.8jQuery( ":lt(-index)" )

    -index: 从0开始计数的索引值。 从最后一个元素开始反向计数。

index-related selectors(索引相关的选择)

这种索引相关的选择器(包括这个“小于”选择器)会在先前提供的选择器筛选出的元素基础上再进行筛选。进一步筛选的依据就是这个元素在原先匹配集合中的顺序。举例来说,如果一开始通过 class 选择器 (.myclass ) 选中了 4 个元素,然后这四个元素的索引值会被分配为 03,之后就可以用这种索引值选择器来进一步筛选了。

请注意,由于JavaScript数组使用基于0的索引 ,这些选择器也是如此。这就是为什么$('.myclass:lt(1)')选择器选择文档中第一个MyClass类的元素,而不是选择不到任何元素。与此相反,:nth-child(n)基于1的索引的,以符合CSS规范。

jQuery 1.8以前的版本,:lt(index)选择器不接收一个负数的index值。

Additional Notes(其他注意事项):

  • 因为 :lt() 是一个 jQuery 延伸出来的一个选择器 , 并且不是的CSS规范的一部分, 使用:lt()查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了在现代浏览器上获得更佳的性能,请使用$("your-pure-css-selector").slice(0, index)代替。

查找索引值小于 4 的 td.

 
<script>$("td:lt(4)").css("color", "red");</script>

:not() Selector

描述: 选择所有元素去除不匹配给定的选择器的元素。

所有的选择器可以放置在 :not()中,例如 :not(div a) 和 :not(div,a)。

Additional Notes(其他注意事项):

.not()方法可以让代码更易读。而使用 :not() 通常会构建出一个非常复杂的选择器。所以大多数情况下,推荐使用.not()方法。

查找所有没有被选中的复选框,然后高亮后面的 span。注意,当你点击复选框的时候不会有反应,因为没有绑定任何点击事件。

 
<!DOCTYPE html>
<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div>
  <input type="checkbox" name="a" />
  <span>Mary</span>
</div>
 
<div>
  <input type="checkbox" name="b" />
  <span>lcm</span>
 
</div>
<div>
  <input type="checkbox" name="c" checked="checked" />
 
  <span>Peter</span>
</div>
<script>
  $("input:not(:checked) + span").css("background-color", "yellow");
  $("input").attr("disabled", "disabled");
 
</script>
 
</body>
</html>

:odd Selector

描述: 选择索引值为奇数元素,从 0 开始计数。同样查看偶数even.

特别地注意的是,这是基于0的索引,所以:odd选择器是选择第二个元素,第四个元素,依此类推在匹配。

Additional Notes(其他注意事项):

  • 因为:odd 是一个 jQuery 延伸出来的选择器,并不是的CSS规范的一部分,使用:odd 查询不能充分利用原生DOM提供的querySelectorAll() 方法来提高性能。为了当使用:odd 的时候在现代浏览器上获得更佳的性能,首先使用纯CSS选择器选择元素,然后使用.filter(":odd").
  • 被选中元素的顺序是其在文档中出现的顺序。
<script>$("tr:odd").css("background-color", "#bbbbff");</script>

:root Selector

描述: 选择该文档的根元素。

在HTML中,文档的根元素,和$(":root")选择的元素一样, 永远是<html>元素。

 显示根元素的标签名。

 
<!DOCTYPE html>
<html>
<head>
  <style>
span.fot { color: red; font-size: 120%; font-style: italic; }
  </style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div id="log">The root of this document is: </div>
<script>
$( "<b></b>" ).html( $( ":root" )[0].nodeName ).appendTo( "#log" );
</script>
 
</body>
</html>

:target Selector

描述: 选择由文档URI的格式化识别码表示的目标元素。

如果文档的URI包含一个格式化的标识符,或hash(哈希), 然后:target选择器将匹配ID和标识符相匹配的元素。  例如,给定的URI http://example.com/#foo, $( "p:target" ),将选择<p id="foo">元素。

原文地址:https://www.cnblogs.com/pilee/p/3470094.html