将所有元素放入数组中

时间:2015-04-09 12:42:12

标签: javascript jquery arrays

我环顾四周,但似乎没有回答我的问题。我有一张简单的地图,5x5。它有25个div,标记为a1-e5,如下所示:

<div id='a1'></div>
<div id='a2'></div>
<div id='a3'></div>
<div id='a4'></div>
<div id='a5'></div>

等等。我试图运行一个函数来为每个div分配一个类。为此,我尝试将所有div放入一个数组中,但数组总是变空。这就是我正在尝试的:

var divs = [];
$('div').each(function() {
    divs.push($(this));
});

它只是没有向数组中添加任何内容。完全没有。有任何想法吗?在此先感谢您的帮助!

编辑:代码在函数内部,我只给了你一个函数片段。对不起,对此感到困惑!

编辑2:我想为每个div分配一个随机类,这就是我想使用数组的原因。

4 个答案:

答案 0 :(得分:2)

$('div').each(function(idx,div){
    $(div).addClass('div'+idx)
})

这将导致

<div id="a1" class="div0"></div>
<div id="a2" class="div1"></div>
<div id="a3" class="div2"></div>
<div id="a4" class="div3"></div>
<div id="a5" class="div4"></div>

答案 1 :(得分:1)

为什么不简单地执行addClass

<强> JS

$('div').each(function(key) {       

    $(this).addClass("divCss"+$(this).prop("id").substr(1,1)[0]);
});

<强> CSS

.divCss1
{
    background-color:red;
}
.divCss2
{
    background-color:green;
}
.divCss3
{
    background-color:yellow;
}
.divCss4
{
    background-color:blue;
}
.divCss5
{
    background-color:teal;
}

fiddle

答案 2 :(得分:0)

jquery选择器将返回一个项目数组,所以

$('div')返回一个数组

var myDivs = $('div'); // gives you an array

确保在dom中呈现div之后运行代码

即。在$(function () {});

答案 3 :(得分:0)

简单地做

$('div').addClass("className");

将该类添加到所有25个div。

编辑

根据您的评论,您可以执行以下操作:

$('div').each(function() {    
    /*Other code here to determine which class will be added to which div*/
    $(this).addClass("className");
});