首頁 >web前端 >js教程 >jquery取得css中的選擇器(實例講解)_jquery

jquery取得css中的選擇器(實例講解)_jquery

WBOY
WBOY原創
2016-05-16 17:11:281027瀏覽

開始寫之前先複習一下元素和節點的差別:

元素是W3C文件物件模型(DOM)當中使用最廣泛的節點之一。

元素擁有關聯的「屬性」。

XmlElement類別有許多方法可以存取它的「屬性」(GetAttribute, SetAttribute, RemoveAttribute, GetAttributeNode, 等等)。

你也可以使用「Attributes」屬性來傳回一個支援「名字」或「序號」存取的「XML屬性集」。

那麼,從XmlElement類別的解釋來看,我們很容易就知道XmlNode和XmlElement類別的差別了:

XmlElement類別是只擁有“屬性”的節點,而XmlNode則是不僅擁有“屬性”,還擁有“子節點”的節點。

所以,我們在使用它們的時候,如果你需要取得或設定節點中的innerText或innerXml,那麼你就需要用XmlNode;而如果你需要取得或設定節點本身的屬性(參數)的時候,你就需要用XmlElement,當然,你也可以用(XmlElement)對XmlNode進行轉換得到。

下面開始進入正題

在javascript中,除了對id的選擇器比較好取一些,其他的都不是很好取,jquery在這一塊要比它優秀多了,提供了很多的獲取方法主要包括

1、基礎選擇器(主要包括標籤選擇器,id選擇器,類別選擇器,通用選擇器,群組選擇器)

$("#divId") 取得ID為divId的元素
 $("a") 取得所有元素

$(".bgRed") 取得所用CSS類別為bgRed的元素

$("*")取得頁面所有元素

$("#divId, a, .bgRed")取得三個符合條件的選擇器

2、層級選擇器(主要包括子元素選擇器、後代元素選擇器、緊鄰同儕元素選擇器、相鄰同儕元素選擇器)

2.1   子元素選擇器>  ===============選擇兒子元素

複製程式碼

程式碼如下:



       
  • Item 1

  •    
  • Item 2
     li>Nested item 1
  • Nested item 2
  • Nested item 3

      
   
  • Item 3 li>

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


    這是官方的程式碼,可以參考以下其用法

    2.2   後代選擇器直接用空格表示不僅包括兒子還包括孫子........===============選擇後代元素複製程式碼

    程式碼如下:


     

         

       
       
       

       
     > input name="newsletter" />
       


     

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

    2.3    緊鄰同輩元素選擇器所有符合條件的都可以會被選擇主要是選擇一個元素之後的平行元素===============選擇指定元素的下一個平輩元素複製程式碼
    程式碼如下:

      


       
       
       

         

         
       

     

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

    2.4  相邻同辈元素选择器 ===============选择指定元素的所有指定的平辈元素,可以隔几个不是指定的元素
    复制代码 代码如下:

     
    div (doesn't match since before #prev)

      span#prev
     
    div sibling


     
    div sibling
    div niece

      span sibling (not div)
     
    div sibling

    <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']")

    8.子元素過濾器 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")
    名稱
    說明 ​​舉例
    :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")
    陳述:
    本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn