05-02 jq选择器 - 图1


选择器

通过选择器,可以获取到页面元素。jQuery具有强大的选择器,跟CSS3选择器类似

1、基本选择器

  1. <body>
  2. <div id="d1" class="c1">div1</div>
  3. <div>div2</div>
  4. <span>span1</span>
  5. </body>
  6. # id选择器
  7. $("#d1")
  8. # 标签选择器
  9. $("div")
  10. # class选择器
  11. $(".c1")
  12. # 配合使用
  13. $("div.c1") // 找到c1 class类的div标签
  14. # 所有元素选择器
  15. $("*")
  16. # 组合选择器
  17. $("#d1,.c1,div")

2、层级选择器

  1. # xy可以为任意选择器
  2. $("x y");// x的所有后代y(子子孙孙)
  3. $("x > y");// x的所有儿子y(儿子)
  4. $("x + y")// 找到所有紧挨在x后面的y
  5. $("x ~ y")// x之后所有的兄弟y

3、过滤选择器

  1. :first 获取第一个元素
  2. :not(selector) 去除所有与给定选择器匹配的元素
  3. :even 匹配所有索引值为偶数的元素,从 0 开始计数
  4. :odd 匹配所有索引值为奇数的元素,从 0 开始计数
  5. :eq(index) 匹配一个给定索引值的元素
  6. :gt(index) 匹配所有大于给定索引值的元素
  7. :lang 选择指定语言的所有元素。1.9+
  8. :last 获取最后个元素
  9. :lt(index) 匹配所有小于给定索引值的元素
  10. :header 匹配如 h1, h2, h3之类的标题元素
  11. :animated 匹配所有正在执行动画效果的元素
  12. :focus 匹配当前获取焦点的元素
  13. :root 选择该文档的根元素 1.9+
  14. :target 选择由文档URI的格式化识别码表示的目标元素 1.9
  • 例子:

    1. $("div:has(h1)")// 找到所有后代中有h1标签的div标签
    2. $("div:has(.c1)")// 找到所有后代中有c1样式类的div标签
    3. $("li:not(.c1)")// 找到所有不包含c1样式类的li标签
    4. $("li:not(:has(a))")// 找到所有后代中不含a标签的li标签

    4、属性选择器

    1. [attribute] 匹配包含给定属性的元素
    2. [attribute=value] 匹配给定的属性是某个特定值的元素
    3. [attribute!=value] 匹配所有不含有指定的属性,或者属性不等于特定值的元素
    4. [attribute^=value] 匹配给定的属性是以某些值开始的元素
    5. [attribute$=value] 匹配给定的属性是以某些值结尾的元素
    6. [attribute*=value] 匹配给定的属性是以包含某些值的元素
    7. [attrSel1][attrSel2][attrSelN] 复合属性选择器,需要同时满足多个条件时使用
  • 例子

    1. // 示例
    2. <input type="text">
    3. <input type="password">
    4. <input type="checkbox">
    5. $("input[type='checkbox']");// 取到checkbox类型的input标签
    6. $("input[type!='text']");// 取到类型不是textinput标签

    五、内容选择器

    1. :contains(text) 匹配包含给定文本的元素
    2. :empty 匹配所有不包含子元素或者文本的空元素
    3. :has(selector) 匹配含有选择器所匹配的元素的元素
    4. :parent 匹配含有子元素或者文本的元素

六、可见性选择器

  1. :hidden 匹配所有不可见元素,或者typehidden的元素
  2. :visible 匹配所有的可见元素

七、子元素选择器

  1. :first-child 匹配所给选择器( :之前的选择器)的第一个子元素
  2. :first-of-type 结构化伪类,匹配E的父元素的第一个E类型的孩子 1.9+
  3. :last-child 匹配最后一个子元素
  4. :last-of-type 结构化伪类,匹配E的父元素的最后一个E类型的孩子 1.9+
  5. :nth-child() 匹配其父元素下的第N个子或奇偶元素
  6. :nth-last-child() 选择所有他们父元素的第n个子元素。计数从最后一个元素开始到第一个 1.9+
  7. :nth-last-of-type() 选择的所有他们的父级元素的第n个子元素,计数从最后一个元素到第一个 1.9+
  8. :nth-of-type() 选择同属于一个父元素之下,并且标签名相同的子元素中的第n 1.9+
  9. :only-child 如果某个元素是父元素中唯一的子元素,那将会被匹配
  10. :only-of-type 选择所有没有兄弟元素,且具有相同的元素名称的元素 1.9+

八、表单选择器

  1. :input 匹配所有 input, textarea, select button 元素
  2. :text 匹配所有的单行文本框
  3. :password 匹配所有密码框
  4. :radio 匹配所有单选按钮
  5. :checkbox 匹配所有复选框
  6. :submit 匹配所有提交按钮,匹配 type="submit" input或者button
  7. :image 匹配所有图像域
  8. :reset 匹配所有重置按钮
  9. :button 匹配所有按钮
  10. :file 匹配所有文件域

九、表单对象选择器

  1. :enabled 匹配所有可用元素
  2. :disabled 匹配所有不可用元素
  3. :checked 匹配所有选中的被选中元素(复选框、单选框等,select中的option)
  4. :selected 匹配所有选中的option元素