Home » jQuery 問題分享

[jQ]取得索引大於 n 且小於 m 的元素

範例 1
範例 2
沒錯!只要 300 元就能獲得我們團隊完整的協助,讓效果能迅速的整合到您的網站,並保證瀏覽器的相容性。
立刻申請!

問題出處:http://stackoverflow.com/quest......reater-than-3-and-less-than-6

原發問者想要從一堆元素中取得索引大於 3 且小於 6 的元素,所以應該是要取到索引為第 45 這兩元素。看到這樣的問題描述之後,很多人直覺就會這樣寫:

檢視原始碼 JavaScript
1
$('td:gt(3):lt(6)');

但這是不對的,因為一但執行了 :gt(3) 之後,那麼剩下來的元素就索引就整個被改變從 0 開始,所以接著再套上 :lt(6) 時,就會變成從 05 之間的就又被選擇了。

若要使用 :gt():lt() 的話,應該要把使用的順序反過來:

檢視原始碼 JavaScript
1
$('td:lt(6):gt(3)');

這樣才能先取出小於 6 的之後,再從裡面再篩選出大於 3

但最建議且最快速的方式是使用 .slice(start[, end])

檢視原始碼 JavaScript
1
$('td').slice(4, 6);

這樣出來的結果會跟上面的是一樣的,且在執行上會比使用 :gt():lt() 快上 4 倍之多。原文中的 James Allardice 有列出執行速度的比較表


(紅色為使用 .slice(), 越長表示越好)

範例 1 範例 2

檔案描述
基本的範例檔案(免空) 開始下載
基本的範例檔案 會員限定

4 筆針對 [jQ]取得索引大於 n 且小於 m 的元素 的迴響

發表迴響