2015-04-09 3 views
-1

Я огляделся, но ничего не ответил на мой вопрос. У меня простая карта, 5х5. Он имеет 25 делений, обозначенных 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 случайным классом, поэтому я хотел использовать массив.

+2

Где и когда работает код, и как вы определить содержимое массива после этого? –

+1

Когда вы называете эту функцию? код выглядит нормально, и он работает – Alessio

+0

Зачем вам добавлять их в массив для назначения класса? – Turnip

ответ

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> 
0

селектор JQuery возвращает массив элементов, так

$('div') возвращает массив

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

Убедитесь, что вы используете свой код после DIV имеет приданы в йоте

т.е. внутри a $(function() {});

0

Просто делать

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

добавит класс во все 25 делений.

EDIT:

По вашему комментарию, вы можете сделать что-то вроде этого:

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

Извините, я был не очень ясен. Я хочу назначить каждый div случайным классом, поэтому я помещаю их в массив – Kyle

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

Смежные вопросы