jQuery选择器

 

jQuery选择器

搜集整理:sagahu@163.com
日期:2012-01-05

jQuery选择器与CSS选择器相比较:

  • 从写法上看,jQuery选择器继承CSS选择器的绝大部分风格,并且更加丰富而强大;
  • 从功能上看,CSS选择器找到元素后添加样式,而jQuery选择器找到元素后添加行为;
  • jQuery选择器具有跨浏览器兼容性。
1 基本选择器(Basic)
选择器说明返回值示例
#idid选择器:根据给定的id匹配一个元素单个元素$("text1")选取id为text1的元素
.class类选择器:根据给定的类名匹配元素,选取拥有此class的元素集合元素$(".test")选取所有拥有class为test的元素
element标签选择器:根据给定的元素标签名匹配元素集合元素$("a")选取所有<a>元素
*统配选择器:匹配所有元素集合元素$("*")选取所有的元素
selector1,selector2,selectorN组合选择器:可以将多个选择器用“,”分隔开而组成一个组合选择器,会将每一个选择器匹配到的元素合都返回集合元素$("div,#text1,p.myClass") 选取所有<div>标签,id为text1的元素,以及拥有class为myClass的<p>标签

2 层次选择器(Hierarchy)
选择器说明返回值示例
ancestor descendant继承选择器:选取ancestor元素的所有descendant(后代)元素,无论直接的后代还是间接的后代集合元素$("div span")选取<div>里面的所有<span>元素
parent>child包含选择器:选取parent元素下的直接child元素(子元素,或者被包含的元素,只能是parent直接包含的child元素)集合元素$("div>span")选取<div>里面一级元素名是<span>的元素
prev+next选取prev元素后紧接它的那个next元素;可用next()方法代替集合元素$(".one+div")选取符合条件“前面元素拥有名为one的class,而后紧接<div>元素”的那个<div>元素
prev~siblingss选取prev元素后紧接它的所有silbings元素;可用nextAll()方法代替集合元素$("#two~div")选取符合条件“前面元素id为two,后紧接<div>元素”的那些<div>元素

补充说明

  • $("prev+next")选择器可以使用next()方法来代替,例如:$(".one+div")与$(".one").next("div")等效。
  • $("prev~next")选择器可以使用nextAll()方法来代替,例如:$(".one~div")与$(".one").nextAll("div")等效。
  • $("prev~next")选择器与siblings()方法有些像,但决不相同:$("prev~next")选择器只能选择prev元素后面同辈的next元素;而siblings()方法与前后位置无关,只要是同辈符合next的节点就都能够匹配。

3.1 基本过滤选择器(Basic Filter)
选择器说明返回值示例
:first匹配找到的第一个元素单个元素$("div:first")选取所有<div>元素的第一个
:last匹配找到的最后一个元素单个元素$("div:last")选取所有<div>元素的最后一个
:not(selector)排除与给定selector选择器匹配的元素后,选择剩下的元素集合元素$("input:not(.myClass)")选取不拥有class为myClass的<input>元素
:even选取索引是偶数的所有元素(索引从0开始)集合元素$("input:even")选取索引是偶数的<input>元素
:odd选取索引是奇数的所有元素(索引从0开始)集合元素$("input:")选取索引是奇数的<input>元素
:eq(index)选取索引等于index的所有元素(索引从0开始) 单个元素$("input:eq(1)")选取索引等于1的<input>元素
:gt(index)选取索引大于index的所有元素(索引从0开始)集合元素$("input:gt(1)")选取索引大于1的<input>元素
:lt(index)选取索引小于index的所有元素(索引从0开始)集合元素$("input.lt(1)")选取索引小于1的<input>元素
:header选取所有的标题元素,包括h1,h2,h3......等等集合元素$(":header")选取网页中所有的<h1>,<h2>,<h3>......
:animated选取当前正在执行动画的所有元素集合元素$("div:animated")选取正在执行动画的<div>元素

 

3.2 内容过滤选择器(Content Filter)
选择器说明返回值示例
:contains(text)选取含有内容为“text”的元素集合元素$("div:contains('我')")选取含有文本“我”的<div>元素
:empty选取不包含任何子元素或者文本的空元素集合元素$("div:empty")选取不包含子元素(包括文本元素)的<div>元素
:has(selector)选取含有某子元素能够与selector选择器匹配的元素集合元素$("div:has(p)")选取含有<p>元素的<div>元素
:parentt选取含有子元素或者文本的元素集合元素$("div:parent")选取拥有子元素(包括文本元素)的<div>元素

 

3.3 可见性过滤选择器(Visibility Filter)
选择器说明返回值示例
:hidden选取所有不可见的元素集合元素$(":hidden")选取所有不可见的元素。包括<input type="hidden"/>,<div style="display:none;">和<div style="visibility:hidden;">等形式。如果只想选取<input>元素,可以使用$("input:hidden")
:visible选取所有可见的元素集合元素$("div:visible")选取所有可见的<div>元素

3.4 属性过滤选择器(Attribute Filter)
选择器说明返回值示例
[attribute]选取拥有此属性的元素集合元素$("div[id]")选取拥有属性id的元素
[attribute=value]选取属性的值等于value的元素集合元素$("div[title==test]")选取属性title为“test”的<div>元素
[attribute!=value]选取属性的值不等于value的元素集合元素$("div[title!=test]")选取属性title不等于“test”的<div>元素(注意:没有属性title的<div>元素也会被选取)
[attribute^=value]选取属性的值以value开始的元素集合元素$("div[title^=test]")选取属性title以“test”开始的<div>元素
[attribute$=value]选取属性的值以value结束的元素集合元素$("div[title$=test]")选取属性title以“test”结尾的<div>元素
[attribute*=value]选取属性的值包含value的元素集合元素$("div[title*=test]")选取属性title包含有“test”的<div>元素
[selector1][selector2][selectorN]复合属性选择器:使用多个属性选择器合并成一个复合属性选择器,需要同时满足多个条件。集合元素$("div[id][title$='test']")选取拥有属性id,并且属性title以“test”结尾的<div>元素

 

3.5 子元素过滤选择器(Child Filter)
选择器说明返回值示例
:nth-child(index/even/odd/equation)选取每个父元素下的第index个子元素/偶数索引子元素/奇数索引子元素(注意:index从1算起)集合元素 
:first-child选取每个父元素的首个子元素集合元素$("ul li :first-child")选取每个<ul>中第一个<li>元素 
:last-child选取每个父元素的最后一个子元素集合元素  $("ul li :last-child")选取每个<ul>中第一个<li>元素
:only-child如果某个元素是它父元素中唯一的子元素,那么将会匹配。如果父元素中还含有其它元素,则不会被匹配集合元素$("ul li :only-child")选取只含有一个<li>的<ul>中的<li>元素

补充说明

  • :nth-child(even)能够选取每个父元素下索引值为偶数的元素。
  • :nth-child(odd)能够选取每个父元素下索引值为奇数的元素。
  • :nth-child(2)能够选取每个父元素下索引值为2的元素(注意:索引值从1开始)。
  • :nth-child(3n)能够选取每个父元素下索引值为2的元素(注意:索引值从1开始)。
  • :nth-child(3n+1)能够选取每个父元素下索引值为2的元素(注意:索引值从1开始)。
  • 注意:与基本过滤选择器的不同,基本过滤选择器的:even、:odd、:eq(index)、:gt(index)、:lt(index)的索引都是从0开始;而子选择器的:nth-child(index/even/odd/equation)的索引都是从1开始。
  • 注意:这些子元素过滤选择器与前面父选择器之间必须有空格。

 

3.6 表单对象属性过滤选择器(Form Filter)
选择器说明返回值示例
:enabled选取所有可用的元素集合元素$("#form1:enabled")选取id为“form1”的表单内的所有可用元素
:disabled选取所有不可用的元素集合元素$("#form2:disabled")选取id为“form2”的表单内的所有不可用元素
:checked选取所有被选中的元素(适用:单选框、复选框)集合元素$("input:checked")选取所有被选中的<input>元素
:selected选取所有被选中的option(适用:下拉列表)集合元素$("select:selected")选取所有<select>元素中的被选中option

 

4 表单选择器(Form)
选择器说明返回值示例
:input选取所有的input元素(包括<input>、<textarea>、<select>,以及<button>元素)集合元素$(":input")选取所有的input元素
:text选取所有的单行文本框集合元素$(":text")选取所有的单行文本框
:password选取所有的密码框集合元素$(":password")选取所有的密码框
:radio选取所有的单选框集合元素$(":radio")选取所有的单选框
:checkbox选取所有的复选框集合元素$(":checkbox")选取所有的复选框
:submit选取所有的提交按钮(包括<input type="submit"/>,<button></button>两种形式) 集合元素$(":submit")选取所有的提交按钮
:image选取所有的图像域(特指<input type="image"/>,不是<img>)集合元素$(":image")选取所有的图像域
:reset选取所有的重置按钮集合元素$("reset")选取所有的重置按钮
:button选取所有的按钮(包括<input type="button"/>,<button></button>两种形式)集合元素$(":button")选取所有的按钮
:file选取所有的上传域集合元素$(":file")选取所有的上传域
:hidden选取所有不可见元素(包括<input type="hidden"/>,<div style="display:none;">和<div style="visibility:hidden;">等形式)集合元素$(":hidden")选取所有不可见元素
补充说明
  • 注意$("#form1 :input")与$("#form1 input")不同之处:$("#form1 :input")匹配id为form1的表单内所有<input>、<button>、<textarea>、<select>四种元素,而$("#form1 input")只匹配id为form1的表单内所有<input>这一种元素。

选择器中含有空格的问题

按照CSS选择器的定义,CSS选择器中有空格表示继承选择器,或者是后代选择器。而jQuery选择器基本上继承了CSS选择器,也就继承了这种空格的用法。在实际应用中需要非常注意选择器中空格的作用,否则会得到不同的结果。实际上笔者对于这一点也是比较生疏的,欢迎大家斧正。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值