2012-09-10 221 views
5

我需要能夠將當前選擇器存儲在當前視口中,然後10秒鐘檢查它們是否仍在用戶當前視口中。將jquery選擇器轉換爲數組

我的解決方案是將選擇器存儲在一個數組中,然後在10秒內將舊選擇器與新的比較,看看是否有匹配。如果他們做...做些事情。

所以我相信使用.each和構建數組,除非有人有一個更優雅的解決方案呢?

$('.gridContainers:in-viewport') 

這將返回一個標準選擇器。

+0

我不明白這一點。你能詳細闡述一下嗎? – jAndy

+0

你將不得不張貼一些標記和一些JavaScript,所以我們可以知道你在做什麼 – jackwanders

+1

[*你有什麼試過?*](http://mattgemmell.com/2008/12/08/what-you-you-tried /) – zzzzBov

回答

14

調用$(選擇器)返回一個類似數組的jQuery對象,而不是實際的JavaScript數組,但是爲了實現它們試圖將其轉換爲實際數組的目的可能是不必要的。

這是如何將選擇器變成原生Javascript數組。

$(selector).toArray() 

Jquery.toArray()

+0

blimey!我怎麼錯過了,博洛! –

+0

沒有必要調用.toArray(),因爲$(selector)已經返回一個數組。 – BishopZ

+0

humm,使用toArray會將它變成一個trun js數組。 –

-1

嘗試列如下FIND方法:

$('element').find('selection'); 

這會給所有選定的元素陣列。希望這有助於

+4

'.find()'返回一個jQuery對象,而不是一個數組。 – jackwanders

+0

這不會幫助,因爲它只是發現一個元素降序您的當前選擇器。 –

+0

是的,但它可以幫助人們認識到,還有另一個更簡單的解決方案,試圖用數組來實現它們。所以,從我+1。 –

0

隨着ES6

Array.from($(selector)); // return JS array