首頁 > web前端 > js教程 > jQuery中關於​​常用選擇器的具體分析

jQuery中關於​​常用選擇器的具體分析

黄舟
發布: 2017-07-17 16:12:57
原創
1145 人瀏覽過

本文為大家分享了jQuery常用選擇器的具體程式碼,供大家參考,具體內容如下

1、jQuery:(使用jQuery一定標示我們使用的版本號)

  它是一個使用原生的JS來封裝的常用的方法的類別庫(解決了瀏覽器的兼容問題)

2、jQuery中提供的方法

選擇器

透過傳遞對應規則的內容(ID、標籤名稱、樣式類別名稱...),取得到頁面中指定的元素/元素集合

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

<!DOCTYPE html>

<html lang="en">

<head>

  <meta charset="UTF-8">

  <title>Document</title>

</head>

<body>

  <div id=&#39;div1&#39;>

    <div>

      <span></span>

      <span></span>

      <span></span>

    </div>

    <div></div>

    <div id=&#39;div3&#39;></div>

    <ul>

      <li></li>

      <li></li>

      <li></li>

    </ul>

  

  </div>

    

  

  <script>

    //原生JS获取到的结果属于元素对象/元素集合/节点集合...他们可以使用浏览器为其提供的那些天生自带的属性和方法

    //原生的JS对象不能直接的使用jQuery中提供的属性和方法

    var oDiv = document.getElementById(&#39;div1&#39;)

    oDiv.clientWidth

    oDiv.getAttribute

    //jq获取到的结果是一个jQuery对象,可以使用jQuery里面提供的属性和方法,但是不能直接的使用浏览器内置的属性和方法

    var $oDiv = jQuery("#div1")//$("#div1")

    $oDiv.innerWidth();

    $oDiv.attr

  

    //关于原生JS对象和jQuery对象之间的转换

      //1)、原生的转变成jQuery:$(原生JS对象)

      $(oDiv)

      //2)、jQuery转化成原生:直接通过索引获取对应的元素对象即可

      $oDiv[0]

      $oDiv.get(0)//<==>$oDiv[0]都是通过索引来获取指定位置的元素(JS原生对象)

  

    //更多的jQuery选择器

    $(&#39;#div1&#39;)

    $(&#39;div&#39;)

    $(&#39;.w100&#39;)

    $(&#39;*&#39;)

    $(&#39;#div1,div,.w100&#39;)//把每一个选择器获取到的jQuery对象最后融合在一起,最后一起获取到

    $(&#39;#div1 li&#39;)//在子子孙孙级中进行查找

    $(&#39;#div1>li&#39;)//在子级中进行查找

    $(&#39;#div3+&#39;)//获取它的下一个弟弟

    $(&#39;#div3+ul&#39;)//获取它的下一个弟弟并且标签名是ul的

    $(&#39;#div3~&#39;)//获取它的所有的弟弟元素

    $(&#39;#div3~ul&#39;)//获取它的所有的弟弟元素并且标签名为ul的

    $(&#39;#div1>div:not(.w100)&#39;)//#div1下的所有子集div样式类名不包含w100的

    $(&#39;#div1>div:eq(0)&#39;)//通过索引获取到集合中的某一个,但是获取到的结果依然是一个jQuery对象(而get方法也是通过索引获取,但是获取到的是一个JS原生对象)

    $(&#39;#div1>div:gt(1)&#39;)//大于索引1的(不包含索引1的)

    $(&#39;#div1>div:lt(1)&#39;)//小于索引1的(不包含索引1的)

    $(&#39;#div1 li:contains("我")&#39;)//获取所有的li内容包含“我” 的

    $(&#39;#div1 div:has(ul)&#39;)//在所有的div中包含ul的

    $(&#39;#div1>*:nth-child(1)&#39;)//获取所有的子元素的第一个

    $(&#39;#div1>*:eq(1)&#39;)//获取所有的子元素的第二个(索引为1)

  </script>

</body>

</html>

登入後複製

元素選擇是一切操作的前提, jQuery中$()函數最強大最常用的功能之一就是使用選擇器選擇DOM元素。這裡就匯總一些十分常用的jquery選擇器。

1、jQuery選擇器基本結構

1

2

$(&#39;选择器&#39;)

$(&#39;选择器 上下文&#39;)

登入後複製

2、使用基本css選擇器

關於基本的css選擇器可以看一下css選擇器詳解。這裡列出幾種最基本的使用css選擇器的用法。

2.1 元素選擇器

1

2

3

$(&#39;a&#39;); //选择所有a元素

$(&#39;div&#39;);  //选择所有div元素

$(&#39;p&#39;);  //选择所有p元素

登入後複製

當然,如果你願意,jQuery也允許我們使用逗號將多個選擇器合併為一個選擇器:

1

$(&#39;a,div,p&#39;);

登入後複製

這樣得到了和上面3行程式碼相同的效果。

2.2 類別選擇器

1

2

3

$(&#39;div.myClass&#39;);  //所有拥有myClass类的div元素

$(&#39;p.myClass&#39;);  //所有拥有myClass类的p元素

$(&#39;*.myClass&#39;);  //拥有myClass类的所有类型元素

登入後複製

通常情況下,要選擇擁有某一類別的所有元素時,會省略掉通配符*,如下:

1

$(&#39;.myClass&#39;);  //拥有myClass类的所有类型元素

登入後複製

這樣不會有任何不妥,也是我們常用的寫法。

另外,某些元素可能擁有不只一個類別:

1

$(&#39;div.myClass1.myClass2&#39;);

登入後複製

這樣會選擇同時擁有myClass1以及myClass2類別的div元素。當然,被選中的div元素可能還擁有其他類,也就是說,以下div會毫無疑問地被選中:

1

<div class="myClass1 myClass2 myClass3">...</div>

登入後複製

2.3 ID選擇器

1

$(&#39;table#myID&#39;);  //id为myID的table元素

登入後複製

3、結合使用上下文選擇器

3.1 後代選擇器

#從這裡開始,開始一些稍有難度的選擇,例如:

1

$(&#39;ul.myUl li&#39;);

登入後複製

這樣會選擇所有擁有myUl類別的ul元素的li子元素。聽起來很拗口。看下面的程式碼:

html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

<ul class="myUl">

  <li><a href="#"></a>

    <ul>

      <li>1</li>

      <li>2</li>

      <li>3</li>

    </ul>

  </li>

  <li>

    <ul>

      <li>one</li>

      <li>two</li>

      <li>three</li>

    </ul>

  </li><ul>

登入後複製

這裡,透過$('ul.myUl li'),所有的li元素都會被選中,注意是所有的!因為所有的li元素都是

    ...
的後代。不論你是直接後代,孫子代還是重孫子代。

事實上,上例還不足以完全說明所有擁有myUl類別的ul元素的li子元素的意義。因為擁有myUl類別的ul元素可能不只一個,如下:

html

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<ul class="myUl">

  <li><a href="#"></a>

    <ul>

      <li>1</li>

      <li>2</li>

      <li>3</li>

    </ul>

  </li>

  <li>

    <ul>

      <li>one</li>

      <li>two</li>

      <li>three</li>

    </ul>

  </li><ul><ul class="myUl">

  <li>

    <ul>

      <li>一</li>

      <li>二</li>

      <li>三</li>

    </ul>

  </li><ul></ul></ul>

登入後複製

$('ul.myUl li')同樣會選擇以上程式碼中所有的li元素。因為上述程式碼中所有li元素都是ul.myUl的子元素,雖然ul.myUl有2個。現在應該能理解所有擁有myUl類別的ul元素的li子元素的意義了吧!

後代選擇器其實不只能夠選擇某元素的後代,也可以選擇某元素後代的後代(聽起怎麼有點彆扭),如下:

1

$(&#39;ul.myUl li a&#39;);

登入後複製

這樣就選擇了所有擁有myUl類別的ul元素的所有li後代元素的所有a後代元素。雖然又多了一個xx的後代,不過和上面的分析是一個道理,就不贅述了。

以上是jQuery中關於​​常用選擇器的具體分析的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
引入jQuery 文件
來自於 1970-01-01 08:00:00
0
0
0
jquery筆記哪裡有下?
來自於 1970-01-01 08:00:00
0
0
0
javascript - vue+webpack怎麼引入jquery
來自於 1970-01-01 08:00:00
0
0
0
php+jquery的問題
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板