0

我有几个 div 和一个数组。我使用函数将每个 div (id) 插入到 aray 中。如果我将该函数应用于新的 div,则数组将从索引值 0 开始,而不是保留最后一个索引值。

这是一个小提琴:http: //jsfiddle.net/nQWfG/

assign('.firstround');

分配索引值 0、1、2。

assign('.secondround');

再次分配 0、1、2 的索引值,我希望它们为 3、4、5。

编辑

我这样做两次的原因是因为 $('.secondround') div 稍后将通过 ajax 加载。

4

4 回答 4

1

最简单的方法:

assign('.firstround, .secondround');

编辑

您也可以添加使用Array.push

myArray.push($('#' + index));

代替

myArray[index] = $('#' + index);
于 2012-09-03T08:17:54.830 回答
1

只需定义一个全局索引:http: //jsfiddle.net/nQWfG/2/

于 2012-09-03T08:20:33.543 回答
0

我认为你需要在函数之外有一个 var 来跟踪它,并增加它而不是使用每个函数的索引。这是“每个”的工作方式。

于 2012-09-03T08:17:28.370 回答
0

这条线是问题所在:

myArray[index] = $('#' + index);

index是选择器匹配的元素集合中元素的索引。

通过函数运行第一个选择器后,myArray包含索引为 0、1 和 2 的 3 个元素。下一次,您只需将三个元素重新分配给相同的索引,因为选择器仅更改匹配的元素,而不是它们的相对索引.

我不完全确定您要做什么,但我会使用myArray.push()with.index()来做我认为您正在尝试做的事情:

演示:http: //jsfiddle.net/nQWfG/4/


更好的方法是使用 jQuery 对象:

var $elements = $('.firstround, .secondround').each(function(index) {
    $(this).text(index);
});

$elements.eq(1).css('background', 'red');
$elements.eq(4).css('background', 'green');​

演示:http: //jsfiddle.net/nQWfG/6/

于 2012-09-03T08:23:44.963 回答