您的位置:首页 > Web前端 > JQuery

jQuery CSS选择器

2013-12-28 09:41 190 查看
笔记分为两个部分,今天是CSS的选择器,以后还有一部分xPath的选择器。今天的笔记中包括44个选择器,基本涵盖了CSS 2和CSS 3的所有规定。 

序号选择器含义
1.*通用元素选择器,匹配任何元素
2.E标签选择器,匹配所有使用E标签的元素
3..infoclass选择器,匹配所有class属性中包含info的元素
4.#footerid选择器,匹配所有id属性等于footer的元素
实例:

代码如下:

* { margin:0; padding:0; } 

p { font-size:2em; } 

.info { background:#ff0; } 

p.info { background:#ff0; } 

p.info.error { color:#900; font-weight:bold; } 

#info { background:#ff0; } 

p#info { background:#ff0; } 

二、多元素的组合选择器

序号选择器含义
5.E,F多元素选择器,同时匹配所有E元素或F元素,E和F之间用逗号分隔
6.E F后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔
7.E > F子元素选择器,匹配所有E元素的子元素F
8.E + F毗邻元素选择器,匹配所有紧随E元素之后的同级元素F
实例:

代码如下:

div p { color:#f00; } 

#nav li { display:inline; } 

#nav a { font-weight:bold; } 

div > strong { color:#f00; } 

p + p { color:#f00; } 

三、CSS 2.1 属性选择器

序号选择器含义
9.E[att]匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如“[cheacked]”。以下同。)
10.E[att=val]匹配所有att属性等于“val”的E元素
11.E[att~=val]匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素
12.E[att|=val]匹配所有att属性具有多个连字号分隔(hyphen-separated)的值、其中一个值以“val”开头的E元素,主要用于lang属性,比如“en”、“en-us”、“en-gb”等等
实例:

代码如下:

p[title] { color:#f00; } 

div[class=error] { color:#f00; } 

td[headers~=col1] { color:#f00; } 

p[lang|=en] { color:#f00; } 

blockquote[class=quote][cite] { color:#f00; } 

四、CSS 2.1中的伪类

序号选择器含义
13.E:first-child匹配父元素的第一个子元素
14.E:link匹配所有未被点击的链接
15.E:visited匹配所有已被点击的链接
16.E:active匹配鼠标已经其上按下、还没有释放的E元素
17.E:hover匹配鼠标悬停其上的E元素
18.E:focus匹配获得当前焦点的E元素
19.E:lang(c)匹配lang属性等于c的E元素
实例:

代码如下:

p:first-child { font-style:italic; } 

input[type=text]:focus { color:#000; background:#ffe; } 

input[type=text]:focus:hover { background:#fff; } 

q:lang(sv) { quotes: "\201D" "\201D" "\2019" "\2019"; } 

五、 CSS 2.1中的伪元素

序号选择器含义
20.E:first-line匹配E元素的第一行
21.E:first-letter匹配E元素的第一个字母
22.E:before在E元素之前插入生成的内容
23.E:after在E元素之后插入生成的内容
实例:

代码如下:

p:first-line { font-weight:bold; color;#600; } 

.preamble:first-letter { font-size:1.5em; font-weight:bold; } 

.cbb:before { content:""; display:block; height:17px; width:18px; background:url(top.png) no-repeat 0 0; margin:0 0 0 -18px; } 

a:link:after { content: " (" attr(href) ") "; } 

六、CSS 3的同级元素通用选择器

序号选择器含义
24.E ~ F匹配任何在E元素之后的同级F元素
实例:

代码如下:

p ~ ul { background:#ff0; } 

七、CSS 3 属性选择器

序号选择器含义
25.E[att^=”val”]属性att的值以"val"开头的元素
26.E[att$=”val”]属性att的值以"val"结尾的元素
27.E[att*=”val”]属性att的值包含"val"字符串的元素
实例:

代码如下:

div[id^="nav"] { background:#ff0; } 

八、CSS 3中与用户界面有关的伪类

序号选择器含义
28.E:enabled匹配表单中激活的元素
29.E:disabled匹配表单中禁用的元素
30.E:checked匹配表单中被选中的radio(单选框)或checkbox(复选框)元素
31.E::selection匹配用户当前选中的元素
实例:

代码如下:

input[type="text"]:disabled { background:#ddd; } 

九、CSS 3中的结构性伪类

序号选择器含义
32.E:root匹配文档的根元素,对于HTML文档,就是HTML元素
33.E:nth-child(n)匹配其父元素的第n个子元素,第一个编号为1
34.E:nth-last-child(n)匹配其父元素的倒数第n个子元素,第一个编号为1
35.E:nth-of-type(n)与:nth-child()作用类似,但是仅匹配使用同种标签的元素
36.E:nth-last-of-type(n)与:nth-last-child() 作用类似,但是仅匹配使用同种标签的元素
37.E:last-child匹配父元素的最后一个子元素,等同于:nth-last-child(1)
38.E:first-of-type匹配父元素下使用同种标签的第一个子元素,等同于:nth-of-type(1)
39.E:last-of-type匹配父元素下使用同种标签的最后一个子元素,等同于:nth-last-of-type(1)
40.E:only-child匹配父元素下仅有的一个子元素,等同于:first-child:last-child或 :nth-child(1):nth-last-child(1)
41.E:only-of-type匹配父元素下使用同种标签的唯一一个子元素,等同于:first-of-type:last-of-type或 :nth-of-type(1):nth-last-of-type(1)
42.E:empty匹配一个不包含任何子元素的元素,注意,文本节点也被看作子元素
实例:

代码如下:

p:nth-child(3) { color:#f00; } 

p:nth-child(odd) { color:#f00; } 

p:nth-child(even) { color:#f00; } 

p:nth-child(3n+0) { color:#f00; } 

p:nth-child(3n) { color:#f00; } 

tr:nth-child(2n+11) { background:#ff0; } 

tr:nth-last-child(2) { background:#ff0; } 

p:last-child { background:#ff0; } 

p:only-child { background:#ff0; } 

p:empty { background:#ff0; } 

十、CSS 3的反选伪类

序号选择器含义
43.E:not(s)匹配不符合当前选择器的任何元素
实例:

代码如下:

:not(p) { border:1px solid #ccc; }

十一、CSS 3中的 :target 伪类

序号选择器含义
44.E:target匹配文档中特定"id"点击后的效果
1、基础选择器(主要包括标签选择器,id选择器,类选择器,通用选择器,组选择器)

$("#divId") 获取ID为divId的元素 

 $("a") 获取所有<a>元素

$(".bgRed") 获取所用CSS类为bgRed的元素

$("*")获取页面所有元素

$("#divId, a, .bgRed")获取三个满足条件的选择器

2、层级选择器(主要包括子元素选择器、后代元素选择器、紧邻同辈元素选择器、相邻同辈元素选择器)

2.1   子元素选择器>  ===============选择儿子元素

复制代码代码如下:

<ul class="topnav"> 

    <li>Item 1</li> 

    <li>Item 2  

        <ul><li>Nested item 1</li><li>Nested item 2</li><li>Nested item 3</li></ul> 

       </li> 

    <li>Item 3</li> 

</ul> 

<script>    $("ul.topnav > li").css("border", "3px double red");</script>

这是官方的代码,可以参考以下其用法

2.2   后代选择器 直接用空格表示 不仅包括儿子还包括孙子........===============选择后代元素

复制代码代码如下:

 <form> 

    <div>Form is surrounded by the green outline</div> 

    <label>Child:</label> 

    <input name="name" /> 

    <fieldset> 

      <label>Grandchild:</label> 

      <input name="newsletter" /> 

    </fieldset> 

  </form> 

  Sibling to form: <input name="none" /> 

<script>    $("form input").css("border", "2px dotted blue");</script> 

2.3    紧邻同辈元素选择器 所有符合条件的都可以会被选择 主要是选择一个元素之后的平行元素 ===============选择指定元素的下一个平辈元素

复制代码代码如下:

   <form> 

    <label>Name:</label> 

    <input name="name" /> 

    <fieldset> 

      <label>Newsletter:</label> 

      <input name="newsletter" /> 

    </fieldset> 

  </form> 

  <input name="none" /> 

<script>$("label + input").css("color", "blue").val("Labeled!")</script> 

2.4  相邻同辈元素选择器 ===============选择指定元素的所有指定的平辈元素,可以隔几个不是指定的元素

复制代码代码如下:

  <div>div (doesn't match since before #prev)</div> 

  <span id="prev">span#prev</span> 

  <div>div sibling</div> 

  <div>div sibling <div id="small">div niece</div></div> 

  <span>span sibling (not div)</span> 

  <div>div sibling</div> 

<script>$("#prev ~ div").css("border", "3px groove blue");</script>

3、表单选择器主要选择表单、用的时间要注意$(":input")注意引号里面的冒号也可以选择类型如$(":button")不过多介绍

4、基本过滤器主要包括

名称说明举例
:first匹配找到的第一个元素查找表格的第一行:$("tr:first")
:last匹配找到的最后一个元素查找表格的最后一行:$("tr:last")
:not(selector)去除所有与给定选择器匹配的元素查找所有未选中的 input 元素: $("input:not(:checked)")
:even匹配所有索引值为偶数的元素,从 0 开始计数查找表格的1、3、5...行:$("tr:even")
:odd匹配所有索引值为奇数的元素,从 0 开始计数查找表格的2、4、6行:$("tr:odd")
:eq(index)匹配一个给定索引值的元素 

注:index从 0 开始计数
查找第二行:$("tr:eq(1)")
:gt(index)匹配所有大于给定索引值的元素 

注:index从 0 开始计数
查找第二第三行,即索引值是1和2,也就是比0大:$("tr:gt(0)")
:lt(index)选择结果集中索引小于 N 的 elements 

注:index从 0 开始计数
查找第一第二行,即索引值是0和1,也就是比2小:$("tr:lt(2)")
:header选择所有h1,h2,p一类的header标签.给页面内所有标题加上背景色: $(":header").css("background", "#EEE");
:animated匹配所有正在执行动画效果的元素只有对不在执行动画效果的元素执行一个动画特效:

$("#run").click(function(){ 

  $("div:not(:animated)").animate({ left: "+=20" }, 1000); 

});
5、内容过滤器(主节点的子节点为文本节点)

名称说明举例
:contains(text)匹配包含给定文本的元素查找所有包含 "John" 的 div 元素:$("div:contains('John')")
:empty匹配所有不包含子元素或者文本的空元素查找所有不包含子元素或者文本的空元素:$("td:empty")
:has(selector)匹配含有选择器所匹配的元素的元素给所有包含 p 元素的 div 元素添加一个 text 类: $("div:has(p)").addClass("test");
:parent匹配含有子元素或者文本的元素查找所有含有子元素或者文本的 td 元素:$("td:parent")
6、可见性过滤器  Visibility Filters

:hidden

:visible

7、属性过滤器 Attribute Filters

名称说明举例
[attribute]匹配包含给定属性的元素查找所有含有 id 属性的 div 元素: 

$("div[id]")
[attribute=value]匹配给定的属性是某个特定值的元素查找所有 name 属性是 newsletter 的 input 元素: 

$("input[name='newsletter']").attr("checked", true);
[attribute!=value]匹配给定的属性是不包含某个特定值的元素查找所有 name 属性不是 newsletter 的 input 元素: 

$("input[name!='newsletter']").attr("checked", true);
[attribute^=value]匹配给定的属性是以某些值开始的元素$("input[name^='news']")
[attribute$=value]匹配给定的属性是以某些值结尾的元素查找所有 name 以 'letter' 结尾的 input 元素: 

$("input[name$='letter']")
[attribute*=value]匹配给定的属性是以包含某些值的元素
查找所有 name 包含 'man' 的 input 元素: 

$("input[name*='man']")
[attributeFilter1][attributeFilter2][attributeFilterN]复合属性选择器,需要同时满足多个条件时使用。找到所有含有 id 属性,并且它的 name 属性是以 man 结尾的: 

$("input[id][name$='man']")
Child Filters

名称说明举例
:nth-child(index/even/odd/equation)匹配其父元素下的第N个子或奇偶元素

':eq(index)' 只匹配一个元素,而这个将为每一个父元素匹配子元素。: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)
在每个 ul 查找第 2 个li: 

$("ul li:nth-child(2)")
:first-child匹配第一个子元素

':first' 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
在每个 ul 中查找第一个 li: 

$("ul li:first-child")
:last-child匹配最后一个子元素

':last'只匹配一个元素,而此选择符将为每个父元素匹配一个子元素
在每个 ul 中查找最后一个 li: 

$("ul li:last-child")
:only-child如果某个元素是父元素中唯一的子元素,那将会被匹配

如果父元素中含有其他元素,那将不会被匹配。
在 ul 中查找是唯一子元素的 li: 

$("ul li:only-child")
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: