jQuery学习一(选择器)

 一直在学习web前端的知识,学习jQuey也有一段时间了,想总结一下。这一章先来学习jQuery选择器的知识。

  一、jQuery选择器的介绍

      jQuery中的选择器完全继承了css的风格。利用jQuery选择器,可以非常快速和便捷的找出DOM元素,学习jQuery选择器是学习jQuery的基础,因为所有的行为都要在获取元素之后才能生效

  二、jQuery选择器

     1、基本选择器

      基本选择器是最常用也是最简单的选择器,通过元素的id,class和标签名等来查找DOM元素

选择器 描述 返回 示例
#id 根据给定的id匹配一个元素 单个元素 $("#test")选取id为test的元素
.class 根据给定的类名匹配元素 集合元素 $(".test")选取class为test的所有元素
element 根据给定的元素名匹配元素 集合元素 $("p")选取所有的<p>元素
* 匹配所有元素 集合元素 $("*")选取所有的元素
selector1,selector2,....,selectorn 将每一个选择器匹配到的元素合并后一起返回 集合元素 $("div,span,p.myClass")选取所有的<div>,<span>拥有class为myClass的<p>元素

     2、层次选择器

      例如后代元素、子元素、相邻元素、同辈元素等,层次选择器是一个非常好的选择器

选择器 描述 返回 示例
$("ancestor descendant") 选择ancestor元素里所有的descendant(后代)元素 集合元素 $("div span")选择<div>里所有的<span>元素
$("parent > child") 选择parent元素下的child(子)元素。与$("ancestor descendant")有区别,$("ancestor descendant")选择的是后代元素 集合元素 $("div > span")选取<div>元素下元素名为<span>的子元素
$("prev + next") 选择紧接在prev元素后的next元素 集合元素 $(".one + div")选取class为one的下一个<div>同辈元素
$("prev ~ siblings") 选取prev元素之后的所有siblings元素 集合元素 $("#two~div")选取id为two的元素后面的所有<div>同辈元素

    层次选择器中增加两个方法的介绍,next()方法可以用来代替$(".one + div"),nextAll()方法可以用来代替$("#prev~div")。siblings()方法与$("#prev~div")进行比较,siblings()方法与前后位置无关,只要是同辈节点就能匹配,$("#prev~div")只能选择"prev"元素之后的同辈元素"<div>"

  

   3、过滤选择器

  过滤选择器与css中的伪类选择器语法相同,即以一个冒号(:)开头。按照不同的过滤规则,过滤选择器可以分为基本过滤、内容过滤、可见性过滤、属性过滤、子元素过滤和表单对象属性过滤选择器

    a、基本过滤选择器

选择器 描述 返回 示例
:first 选择第一个元素 单个元素 $("div:first")选择第一个<div>元素
:last 选择最后一个元素 单个元素 $("div:last")选择所有<div>元素中最后一个<div>元素
:not(selector) 去除所有与给定的选择器匹配的元素 集合元素 $("input:not(.myClass)")选取class不是myClass的input元素
:even 选择索引为偶数的元素,索引从0开始 集合元素 $("input:even")选取索引为偶数的input元素
:odd 选择索引为奇数的元素,索引从0开始 集合元素 $("input:odd")选取索引为奇数的input元素
:eq(index) 选择索引等于index的元素(index从0开始) 单个元素 $("input:eq(1)")选取索引为1的input元素
:gt(index) 选择索引大于index的元素(index从0开始) 集合元素 $("input:gt(1)")选取索引大于1的input元素
:lt(index) 选择索引小于index的元素(index从0开始) 集合元素 $("input:lt(1)")选取索引小于1的input元素
:header 选择所有的标题元素,例如h1,h2,h3等等 集合元素 $(":header")选取所有的标题元素
:animated 选择当前正在执行动画的元素 集合元素 $("div:animated")选取正在执行动画的<div>元素
:focus 选择所有获取焦点的元素 集合元素 $(":focus")选取当前获取焦点的元素

  b、内容过滤选择器

选择器 描述 返回 示例
:contains(text) 选择包含文本内容为"text"的元素 集合元素 $("div:contains('我')")选取含有文本"我"的<div>元素
:empty 选择不包含子元素或者文本内容为空的元素 集合元素 $("div:empty")选取不包含子元素或者文本内容为空的<div>元素
:has(selector) 选择含有"匹配选择器的元素"的元素 集合元素 $("div:has(p)")选取含有<p>元素的<div>元素
:parent 选择包含子元素或者有文本内容的元素 集合元素 $("div:parent")选取拥有子元素(包括文本元素)的<div>元素

   

   c、可见性过滤器

选择器 描述 返回 示例
:hidden 选择所有不可见的元素 集合元素 $(":hidden")选择所有不可见得元素,包括<input type="hidden"/>,<div sytle="display:none;">,<div style="visibility:hidden">等元素,如果只想选择<input>元素,可以时间用$("input:hidden")
:visible 选择所有可见的元素 集合元素 $("div:visible")选取所有可见的<div>元素

  

  

d、属性过滤选择器

    属性过滤选择器是通过元素的属性来获取想过的元素的

选择器 描述 返回 示例
[attribute] 选择拥有此属性的元素 集合元素 $("div[id]")选取拥有id属性的<div>元素
[attribute=value] 选择属性的值为value的元素 集合元素 $("div[id=test]")选择id属性值等于test的<div>元素
[attribute!=value] 选择属性的值不为value的元素 集合元素 $("div[id=!test]")选择id属性值不等于test的<div>元素(注意:没有属性id的<div>元素也会被选取)
[attribute^=value] 选择属性的值以value开头的元素 集合元素 $("div[id^=test]")选择id属性值以test开头的<div>元素
[attribute$=value] 选择属性的值以value结束的元素 集合元素 $("div[id$=test]")选择id属性值以test结尾的<div>元素
[attribute*=value] 选择属性的值包含value的元素 集合元素 $("div[id*=test]")选取id属性值含有test的<div>元素
[attribute|=value] 选择属性的值等于value或以value为前缀(value后跟一个连字符"-")的元素 集合元素 $("div[id|=test]")选取id属性值等于或以test为前缀的<div>元素
[attribute~=value] 选择属性用空格分隔的值中包含一个value的元素 集合元素 $("div[title~="uk"]")选取属性title用空格分开的值中包含字符uk的元素
[attribute1][attribute2][attributeN] 用属性选择器合并成一个复合选择器,满足多个条件 集合元素 $("div[id][title$='uk']")选取拥有id属性,并且属性title以uk结尾的<div>元素

   

e、子元素过滤选择器

选择器 描述 返回 示例
:nth-child(index/even/odd/equation) 选取每个父元素下的第index个元素或者基偶元素。(index从1算起) 集合元素 :eq(index)只匹配一个元素,而:nth-child(index)为每一个父元素匹配子元素,而且:nth-child(index)的index是从1计算的,:eq(index)是从0计算的
:first-child 选取每个父元素的第1个子元素 集合元素 :first只返回单个元素,而:first-child选择器将为每一个父元素匹配第一个子元素,例如$("ul li:first-child")选取每个ul中的第一个li元素
:last-child 选取每个父元素的最后一个子元素 集合元素 :last只返回单个元素,而:last-child选择器为每一个父元素匹配最后一个子元素,例如$("ul li:last-child")选取每个ul中最后一个li元素
:only-child 如果某个元素是父元素中唯一的元素,那么将会匹配,如果父元素中包含其他的元素,则不会匹配 集合元素 $("ul li:only-child")在<ul>中选取是唯一子元素的li元素

  

  

:nth-child的详细解释

  :nth-child(even)能选择每个父元素下的索引值是偶数的元素

  :nth-child(odd)能选择每个父元素下的索引值是基数的元素

  :nth-child(2)能选择每个父元素下的索引值是2的元素

  :nth-child(3n)能选择每个父元素下索引值是3的倍数的元素(n从1开始)

  :nth-child(3n+1)能选择每个父元素下索引值是(3n+1)的元素(n从1开始)

  f、表单对象属性过滤选择器

选择器 描述 返回 示例
:enabled 选择所有可用元素 集合元素 $("#form1:enabled")选择id为form1的表单内所有的可用元素
:disabled 选择所有不可用元素 集合元素 $("#form1:disabled")选择id为form1的表单内所有的不可用元素
:checked 选择所有选中的元素(单选框,复选框) 集合元素 $("input:checked")选择所有被选中的input元素
:selected 选择所有被选中的选项元素(下拉列表) 集合元素 $("select option:selected")选择所有被选中的选项元素

  4、表单选择器

选择器 描述 返回 示例
:input 选取所有的<input>、<textarea>、<select>和<button>元素 集合元素 $(":input")选取所有<input>、<textarea>、<select>和<button>元素
:text 选取所有的单行文本框 集合元素 $(":text")选取所有的单行文本框
:password 选取所有的密码框 集合元素 $(":password")选取所有的密码框
:radio 选取所有的单选框 集合元素 $(":radio")选取所有的单选框
:checkBox 选取所有的多选框 集合元素 $(":checkBox")选取所有的多选框
:submit 选取所有的提交按钮 集合元素 $(":submit")选取所有的提交按钮
:image 选取所有的图像按钮 集合元素 $(":image")选取所有的图片按钮
:reset 选取所有的重置按钮 集合元素 $(":reset")选取所有的重置按钮
:button 选取所有的按钮 集合元素 $(":button")选取所有的按钮
:file 选取所有的上传域 集合元素 $(":file")选取所有的上传域
:hidden 选取所有的不可见元素 集合元素 $(":hidden")选取所有的不可见元素
原文地址:https://www.cnblogs.com/hyzxx/p/5638228.html