jQuery-selector

1. 基本选择器

  • #id:根据给定的ID匹配一个元素。
  • element:根据给定的元素标签名匹配所有元素。
  • .class:根据给定的css类名匹配元素。
  • *:匹配所有元素。
  • selector1,selector2,…,selectorN:将每一个选择器匹配到的元素合并后一起返回。

2. 层级选择器

  • ancestor descendant:在给定的祖先元素下匹配所有的后代元素。
  • parent > child:在给定的父元素下匹配所有的子元素。
  • prev + next:匹配所有紧接在 prev 元素后的 next 元素。
<p class="myP">test</p>
<div></div>
<div></div>

<p class="myP">test</p>
<div></div>
<!-- $('.myP + div') -->
<!-- $('.myP ~ div') -->
<!-- $('.myP:first') -->
  • prev ~ siblings:匹配 prev 元素之后的所有 siblings 元素

3. 基本筛选器

  • :first 获取第一个元素
  • :not(selector) 去除所有与给定选择器匹配的元素
  • :even 匹配所有索引值为偶数的元素,从 0 开始计数
  • :odd 匹配所有索引值为奇数的元素,从 0 开始计数
  • :eq(index) 匹配一个给定索引值的元素
  • :gt(index) 匹配所有大于给定索引值的元素,索引值从0开始
  • :lang(language) 选择指定语言的所有元素
  • :last 获取最后个元素
  • :lt(index) 匹配所有小于给定索引值的元素
  • :header 匹配如 h1, h2, h3之类的标题元素
  • :animated 匹配所有正在执行动画效果的元素
  • :focus 匹配当前获取焦点的元素。
  • :root 选择该文档的根元素。在HTML中,文档的根元素,和$(“:root”)选择的元素一样, 永远是元素。
  • :target 选择由文档URI的格式化识别码表示的目标元素。 例如,给定的URI https://example.com/#foo$( "p:target" ),将选择<p id="foo">元素。

4. 内容选择器

  • :contains(text) 匹配包含给定文本的元素
<p> ksdjfl jack skdjfkl</p>
<div>
    <p> ksdjfl jack skdjfkl</p>
</div>
$('p:contains("jack")');
$('div:empty:not(".test")');
  • :empty 匹配所有不包含子元素或者文本的空元素
  • :has(selector) 匹配含有选择器所匹配的元素的元素
  • :parent 匹配含有子元素或者文本的元素

5. 可见性

  • :hidden 匹配所有不可见元素,或者type为hidden的元素
  • :visible 匹配所有的可见元素

6. 属性选择器

  • [attribute] 匹配包含给定属性的元素。
  • [attribute=value] 匹配给定的属性是某个特定值的元素
<p id="test">
    sdjkfl
</p>
<p id="test1">
    sdjkfl
</p>
<p>
    sdf
</p>

<script>
    $(function(){
        $('p[id*="es"][class][name][..]');
    });
</script>
  • [attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素。
  • [attribute^=value] 匹配给定的属性是以某些值开始的元素
  • [attribute$=value] 匹配给定的属性是以某些值结尾的元素
  • [attribute*=value] 匹配给定的属性是以包含某些值的元素
  • [attrSel1] [attrSel2] [attrSelN] 复合属性选择器,需要同时满足多个条件时使用。

7. 子元素选择器

  • :first-child 匹配所给选择器( :之前的选择器)的第一个子元素。在每个 ul 中查找第一个 li,$("ul li:first-child")
<div>
    <p>
        <span>sdf</span>
    </p>
    <p></p>
    <p></p>
    <p></p>
</div>
<script>
$('p:last-of-type');
</script>
  • :first-of-type 匹配E的父元素的第一个E类型的孩子。

  • :last-child 匹配最后一个子元素。$("ul li:last-child"),在每个 ul 中查找最后一个 li

  • :last-of-type 匹配E的父元素的最后一个E类型的孩子

  • :nth-child 匹配其父元素下的第N个子或奇偶元素

    :nth-child从1开始的,而:eq()是从0算起的!可以使用:
    nth-child(even)
    :nth-child(odd)
    :nth-child(3n)
    :nth-child(2)
    :nth-child(3n+1)
    :nth-child(3n+2)

  • :nth-last-child(n|even|odd|formula) 选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个。formula:使用特殊公式如(an + b)进行选择. 例如:nth-last-child(3n+2) 从倒数第二个子元素开始,匹配每个3的倍数的元素。在每个匹配的ul中查找倒数第二个li,$("ul li:nth-last-child(2)");

  • :nth-last-of-type(n|even|odd|formula) 给定一个单一<ul>包含3个<li>,$(‘li:nth-last-of-type(1)’)选择第3个,也就是最后一个<li>。

  • :nth-of-type(n|even|odd|formula) 选择同属于一个父元素之下,并且标签名相同的子元素中的第n个。

  • :only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配。如果父元素中含有其他元素,那将不会被匹配。

  • :only-of-type 如果父元素有相同的元素名称的其他子元素,那么没有元素会被匹配。

<div>
    <p></p>
    <p></p>
    <p></p>
    <span></span>
</div>
<script>
    $("span:only-of-type");
</script>

8. 表单选择器

  • :input 匹配所有 input, textarea, select 和 button 元素
  • :text 匹配所有的单行文本框
  • :password 匹配所有的密码框
  • :radio 匹配所有单选按钮
  • :checkbox 匹配所有复选框
  • :submit 匹配所有提交按钮,理论上只匹配 type=”submit” 的input或者button,但是现在的很多浏览器,button元素默认的type即为submit,所以很多情况下,不设置type的button也会成为筛选结果。为了防止歧义或者误操作,建议所有的button在使用时都添加type属性。
  • :image 匹配所有图像域
  • :reset 匹配所有重置按钮
  • :button 匹配所有按钮
  • :file 匹配所有文件域

9. 表单对象属性

  • :enabled 匹配所有可用元素

  • :disabled 匹配所有不可用元素

  • :checked 匹配所有选中的被选中元素(复选框、单选框等,select中的option),对于select元素来说,获取选中推荐使用 :selected

  • :selected 匹配所有选中的option元素

10. 混淆选择器

  • $.escapeSelector(selector) 这个方法通常被用在类选择器或者ID选择器中包含一些CSS特殊字符的时候,这个方法基本上与CSS中CSS.escape()方法类似,唯一的区别是jquery中的这个方法支持所有浏览器。$.escapeSelector( "#target" ); // "\#target"

参考资料

jQuery API 中文文档


   转载规则


《jQuery-selector》 Anhua2015 采用 知识共享署名 4.0 国际许可协议 进行许可。
  目录