2012-03-07 54 views
0

好吧...我有以下設置:什麼是快 - 檢查元素屬性VS檢查元素位置

與正div的兒童(n是蠻大的)一個DIV。我需要隱藏/刪除(並不重要 - 我認爲刪除更好,但如果您有意見,這是有幫助的)第3,4,5,6,9,10,11,12,15,16,等等(n + 1模6> 1-0和1不會被隱藏)。

什麼是快: 獲取父DIV兒童使用的邏輯隱藏的div:

childrenArray = document.getElementById('id').childNodes; 
lng = childrenArray.length; 
for (i = 0; i < lng; i++) 
    if (i % 6 > 1) 
    // Remove here. 

或者添加一個類所需的節點,並檢查它。 jQuery類選擇器(或手寫腳本,實際上會更快),然後刪除。

注意:在對你說jQuery類選擇器之前,最好考慮數組仍然被檢查。

那麼基本上檢查一個元素屬性還是做一個數學運算和比較更快?

+5

你爲什麼不測試它? – 2012-03-07 09:27:09

回答

1

不是很確定,但我認爲第一個選項會更快,因爲如果添加類屬性的元素,則jQuery選擇必須考慮整個文檔,因爲不止一個元素可以有相同的類,所以它必須遍歷整個文檔。

但在第一種情況下,如果您找到所需的潛水,則無需查看整個文檔。這樣它會更快。 也可以使用id屬性來選擇所需的元素。

1

父類+ css規則將是最快的方式,但您最好測試它。

.hide-all-but-each-6th * { display:none } 
.hide-all-but-each-6th *:nth-child(6n) { display: block }`