Цикл объектов в массиве JS

0

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

Я знаю, что могу просто выбрать их без использования массива, но я хочу, чтобы этот массив мог добавить несколько элементов позже.

Проблема в том, что я не могу самостоятельно выбирать элементы по их индексу в массиве. Текущий сценарий, который у меня есть, - это выбор и управление обоими объектами в массиве, как если бы они были как индексом [0].

var miniAds = $('#mini_ads');
var elements = miniAds.children();
var changeWtime;
var adsArr = new Array();
var i = 0;
var x = 0;
adsArr.push(elements);
console.log(adsArr);
adsArr[i].css("display", "none");   
var changeWtime = setInterval(function () {
    for (x; x < 1; x++) {
        return x;
        while (x > i) {
            adsArr[1].css("display", "block");
        }
    };
}, 5000);
console.log(x);
changeWtime;

Я не знаю, где я здесь ошибся. Помощь будет высоко оценена. Заранее спасибо.

Теги:
arrays

3 ответа

3
Лучший ответ

Проблемы с кодом

  • Вы создаете двойной массив, когда вы вставляете elements в "adsArr":

    adsArr.push(elements);
    
  • Вы бросаете оператор return в цикле for:

    for (x; x < 1; x++ ){
        return x;
        // ...
    
  • У вас двойной цикл без причины, в while внутри for.

Решение

Я собирался объяснить это решение вербально, но после кодирования примера я понял, что слишком много объяснять, что это другое решение, подобное вашему:

var miniAds = $('#mini_ads'),
    elements = miniAds.children(),
    i = 2,
    x = 0;

elements.hide();

var changeWtime = setInterval(function () {
  if ( x < i ) {
      $(elements[x]).show();
  }

  x++;
}, 5000);

Ссылка на пример на jsbin.

  • 0
    Это очень полезно, а также упрощает вещи, однако, что-то еще не совсем там. Кажется, элементы не были захвачены.
  • 0
    Исправление: он вытягивает элементы в массив (элементы). Однако селектор в операторе if не запускается для отображения.
Показать ещё 8 комментариев
1

В простом Javascript используйте.styles()

.css(), который является методом JQuery, но не Javascript

ref http://www.w3schools.com/js/js_htmldom_css.asp

  • 0
    Это должен быть комментарий, а не ответ :)
1

Привет, я должен нажать дочерние divs, как показано ниже, и после этого я верю, что вы можете выполнить задачу ур...

var adsArr= [];

$('#mini_ads').children().each(
    function(i){
        adsArr.push(this);
    });

Ещё вопросы

Сообщество Overcoder
Наверх
Меню