關於jQuery中nth-child和nth-of-type的詳解

首先貼出來HTML的代碼:css

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://cdn.static.runoob.com/libs/jquery/1.10.2/jquery.min.js">
</script>
<script>
$(document).ready(function(){
  $("button").click(function(){
    var btn = $(this).text();
    $("p").css("background-color","white"); 
    $("p" + btn).css("background-color","yellow");  
  });
});
</script>

</head>
<body>
<button>:nth-child(2)</button>
<button>:nth-last-child(2)</button>
<button>:nth-of-type(2)</button>
<button>:nth-last-of-type(2)</button>

<h1>body 中的標題</h1>
<p>body 中第一個段落。</p>
<p>body 中第二個段落。</p>

<div style="border:1px solid;">
    <span>div 中的 span 元素</span>
    <p>div 中的第一個段落。</p>
    <p>div 中的第二個段落。</p>
    <p>div 中的第三個段落。</p>
    <p>div 中的第四個段落。</p>
    <span>div 中的 span 元素</span>
</div><br>

<div style="border:1px solid;">
    <p>另外一個 div 中的第一個段落。</p>
    <p>另外一個 div 中的第二個段落。</p>
    <p>另外一個 div 中的最後一個段落。</p>
</div>

<p>body 中最後一個段落。</p>



</body>
</html>

整個頁面的顯示結果爲:html

請回答從左往右分別點擊按鈕哪幾行會出現背景顏色的變化呢?jquery

 

 

點擊第一個:this

4,10spa

點擊第二個:code

7,10cdn

點擊第三個:htm

2,5,10blog

點擊第四個:索引

2,6,10

你回答正確了嗎?若是正確能夠點擊右上角關閉網頁了.

 

由此能夠看出

A:nth-child(B)表示在父元素的第B個元素恰好是A的全部A元素

A:nth-of-type(B) 表示父元素的第B個A元素的全部A元素集合

看出來區別了嗎?nth-of-type實質上在索引時進行了一次篩選,父元素只包含A,因此只要B < A在父元素中的數量就必定有值,而nth-child沒有進行篩選,是父元素中全部元素的第B個,若是是A則取出來, 有可能就取不到.

 

若是你能理解以上的問題,那麼對eq()的區別也顯而易見了,A:eq(B),選出的全部A中的第B個,跟父元素就不要緊了.

相關文章
相關標籤/搜索