0
我想實現「:隨機」選擇器,它從一堆元素中選擇一個隨機元素。jQuery自定義過濾器問題:元素堆棧太多
下面的代碼:http://jsfiddle.net/nuSWF/
的問題是選擇器有時嘗試選擇不存在(出索引的)的元件。所以我準備了強調原因的演示代碼,但我不明白爲什麼。我似乎是一個錯誤或什麼的。 P:我知道我可以用其他方法選擇一個隨機元素,但這次我必須實現這個,也想知道里面發生了什麼。
我想實現「:隨機」選擇器,它從一堆元素中選擇一個隨機元素。jQuery自定義過濾器問題:元素堆棧太多
下面的代碼:http://jsfiddle.net/nuSWF/
的問題是選擇器有時嘗試選擇不存在(出索引的)的元件。所以我準備了強調原因的演示代碼,但我不明白爲什麼。我似乎是一個錯誤或什麼的。 P:我知道我可以用其他方法選擇一個隨機元素,但這次我必須實現這個,也想知道里面發生了什麼。
你與堆棧長度看到的是正常的,它只是在評估:random
選擇在mydiv1
前的>
child selector所有<a>
元素,所以在這一點上,長度爲4
對於例如,這會產生您期望的結果:
var elements2 = $('#mydiv1>a').filter(':random');
所以發生了什麼總體上你的選擇確實是過濾隨機<a>
元素......但這些可能會或可能不會進一步通過>
child selector後過濾掉(如果他們下<span>
,他們得到過濾)。如果您仔細考慮過,所有選擇器都是如此......您執行的任何過濾器只會減少元素集合......它們可能會在稍後被更多選擇器進一步過濾。
我不確定,但不是`長度`總是比最大索引多一個? (長度= 10元素最後一個元素= 9) – 2010-12-04 12:17:28