Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Не могу настроить выборку элементов из массива (https://javascript.ru/forum/events/48659-ne-mogu-nastroit-vyborku-ehlementov-iz-massiva.html)

menscool 11.07.2014 16:22

Не могу настроить выборку элементов из массива
 
Моя первая работа с массивами. До этого делал на jquery только простейшие вещи вроде выпадающих списков и модальных окон.

Суть проблемы: в массиве сложены классы элементов. Цикл перебирает элементы по одному. Что я хотел получить - изображения должны исчезать одно за другим. А на деле - исчезает лишь первое изображение.

Вроде бы простяцкая задача. Но сижу уже третий час и не могу понять, в чем проблема. Цикл не работает.:(

menscool 11.07.2014 16:22

Ах да, вот код:

<script>
$(document).ready(function(){
var slides = new Array("0","1","2","3","4");

for(i=0;i<slides.length;i++){
if($('img').attr('class') == slides[i]){
a = "img." + String(slides[i]);
$(a).hide(1000);
};
};


});
</script>
<body>

<div class="wrapper">
<div id="slideshow">
<div id="slideshow-image-wrapper">
<img class="0" src="img/image1.jpg" alt="image1"/>
<img class="1" src="img/image2.jpg" alt="image2"/>
<img class="2" src="img/image3.jpg" alt="image3"/>
<img class="3" src="img/image4.jpg" alt="image4"/>
<img class="4" src="img/image5.jpg" alt="image5"/>
</div>
</div>
</div>

</body>
</html>

Good_Good 11.07.2014 18:37

menscool,
Возможно из-за того, что у тебя "a" не объявлена

Sweet 11.07.2014 18:53

menscool, вот смотри, в 5-й строчке:
$('img').attr('class')

Взять все элементы <img> и получить у них значение атрибута class. Очевидно, что у каждой картинки может быть свой класс. И, по-хорошему, тут надо бы бросить ошибку, потому что логика тут явно нарушена. Но jQuery не такая: она возвращает атрибут первой картинки. Вообще, странное условие, не понятно, чего ты хотел этим сказать. Но условие срабатывает только для первого элемента массива.

BETEPAH 11.07.2014 21:19

Имя класса нельзя начинать с цифры.


Часовой пояс GMT +3, время: 03:09.