#javascript #html #jquery
Вопрос:
Я работаю над приложением для занятий, похожим на твиттер. Я пытаюсь создать новый твит $для каждой итерации цикла и добавлять каждый твит в свой контейнер $feed. Однако при запуске отображается только первый твит в массиве. Моя гипотеза заключается в том, что создается и добавляется только один твит$, и каждая итерация просто перезаписывает его. Вот мой пример кода.
var renderfeed = function() { $feed.empty(); var index = streams.home.length - 1; while (index gt;= 0) { // for (var i = 0; i lt; index 1; i ) { var tweet = streams.home[index]; var $tweet = $('lt;div class="tweet"gt;lt;/divgt;'); $tweet.appendTo($feed); console.log(tweet); console.log(streams.home); console.log($tweet); //assingning values to variable to be pushed into $tweet div, icons already established $userName.text('@' tweet.user); $profilePhoto.attr("src", tweet.profilePhotoURL); $message.text(tweet.message); $timeStamp.text(tweet.created_at); //appending child elements to $tweet $profilePhoto.appendTo($tweet); $userName.appendTo($tweet); $message.appendTo($tweet); $timeStamp.appendTo($tweet); $like.appendTo($tweet); $retweet.appendTo($tweet); $comment.appendTo($tweet); $share.appendTo($tweet); index -= 1; } };
- Streams.home — это массив объектов
Комментарии:
1. я действительно это понял. $tweet создавался для каждой итерации цикла while, но его дочерние элементы были объявлены вне цикла, поэтому только последний элемент $tweet фактически добавлял к нему что-либо.