JQuery: как зациклить массив текста - PullRequest
0 голосов
/ 30 декабря 2010

Я хочу зациклить массив текста. Я собирался использовать .each (), но я не знаю, есть ли способ сделать это с этим. Это возможно или есть другой способ, которым я должен это сделать? Спасибо

Не думаю, что это необходимо, но вот что я тестировал ...

jQuery.each(data.reviews, function(index, itemData) {
    var p = '"'+ itemData.review +'"';
    $("#reviews p").text(p);
});

РЕДАКТИРОВАТЬ: Это массив объектов JSON. (Я думаю, это то, как вы бы сказали - или, может быть, - JSON Object из массива объектов)

По циклу я хочу, чтобы он в конечном итоге постепенно появлялся и исчезал из каждого «обзора» и цикла, так что если будет 5 обзоров, то он будет повторяться от 5 до 0, затем возвращаться к 5 и продолжаться бесконечно. Надеюсь, это прояснит ситуацию.

Ответы [ 3 ]

2 голосов
/ 30 декабря 2010
for (var i = 0; i < data.reviews.length; i++) {
   $('#reviews p').text('"' + data.reviews[i].review + '"');
}

Не знаю, почему вы будете заменять текст #reviews p снова и снова, но собственный Javascript отлично подходит для итерации массивов.

1 голос
/ 30 декабря 2010

Не совсем уверен, что вы подразумеваете под «циклом массива текста». Можно ли предположить, что data.reviews является объектом JSON? если так, то что у вас должно работать, но вы можете использовать:

$('#reviews').append($('<p>').text('"'+itemData.review+'"'));

Это было бы вместо вашего текущего кода в блоке .each. (предполагается, что вы добавляете новый абзац в #reviews для каждой записи. Ваш текущий метод продолжает заменять содержимое абзаца самой последней найденной записью.)

Образец JSFiddle: http://jsfiddle.net/HcV3P/

JSFiddle v2 - с вращателями: http://jsfiddle.net/HcV3P/2/

1 голос
/ 30 декабря 2010

Я думаю, вы должны сделать это так

data.reviews.each(function(index) {
    //use $(this) to get the current review element
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...