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