【发布时间】:2015-03-27 01:09:29
【问题描述】:
所以我现在已经搜索了几个小时,但还没有真正找到解决方案。
似乎 jQuery 方法 .index() 在调用集合中的元素时没有考虑选择器。
澄清一下,当我有一个包含 5 个 li 元素的列表时,其中元素 2、3 和 4 具有“foo”类。当我第一次使用 $('li.foo') 过滤这些项目时,我得到了一个大小为 3 个元素的集合。当我像这样 $('li.foo').first().index() 对集合中的第一项执行 .index() 时,而不是返回 0(因为它是集合中的第一项并且索引开始从 0 开始计数),它实际上返回 1(或者换句话说,第二项的索引)。
现在对于上面的示例,在我的示例中似乎不需要使用索引,但在我的代码中,我实际上过滤了过滤后的集合( $('li.foo').filter('.active') )获取单个项目,然后获取该项目的索引。
问题似乎是 .index 忽略了过滤器和选择器,而我在 $.inArray(); 中没有任何运气
如果有人能阐明如何以可靠的方式获取索引,我将非常感激!
【问题讨论】:
-
我不确定我是否理解您要正确执行的操作,您可以发布一个 sn-p 以便我们查看您的代码示例吗?它不一定是实际的复制粘贴,但一些演示您所面临问题的代码会有所帮助。
-
我会尽快添加一个 sn-p :)
-
我遇到的主要问题是过滤列表上的 .index() 没有返回预期的索引号。相反,您必须通过传入第二个选择器来过滤两次。 $filteredList.first().index() 返回的东西不同于 $filteredList.index($filteredList.first()) 我知道这很令人困惑,但这是我碰到的东西
标签: javascript jquery html css performance