jQuery選擇first row
作爲even
(0 based),而CSS選擇second row
作爲even
(1 based)。 是,jQuery的documentation明確提到它在它的CSS的延伸,而不是部分的補充說明 -CSS選擇器:nth-child(偶數)vs jQuery(「:even」)
因爲:即使是一個jQuery的擴展,而不是CSS的一部分 規範,使用查詢:即使不能利用本機DOM querySelectorAll() 方法提供的 性能提升。要在使用時達到最佳性能:即使選擇 元素,首先使用純CSS選擇器選擇元素,然後使用.filter(「:even」)選擇 。
但是,在決定什麼是偶數和什麼是奇數時,它們不應該是相同的嗎?爲何混淆?
$('ul li').filter(':even').text('jQuery Even')
li {
color: blue;
}
li:nth-child(even) {
color: red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<ul>
<li>CSS Odd</li>
<li>CSS Even</li>
<li>CSS Odd</li>
<li>CSS Even</li>
<li>CSS Even</li>
</ul>
您已經確定了這種差異:基於零的計數和基於一次的計數。爲了使它們匹配,只需使用CSS的':nth-child(偶數)'作爲jQuery選擇器。 – 2014-10-22 07:40:13
@DavidThomas感謝您的回覆。你有任何參考資料可以說明保持這種差異的原因。 – 2014-10-22 07:43:47