Я получил этот HTML структуру:Замена DIVs JQuery
<div class="row">
<div id="game1">Game 1</div>
<div id="game2">Game 2</div>
</div>
<div class="row">
<div id="game3">Game 3</div>
<div id="game4" class="fav">Game 4 (fav)</div>
</div>
<div class="row">
<div id="game5" class="fav">Game 5 (fav)</div>
<div id="game6">Game 6</div>
</div>
<div class="row">
<div id="game7">Game 7</div>
<div id="game8"class="fav">Game 8 (fav)</div>
</div>
Мне нужно сортировать их Избранными (class=fav
). Вот что я делаю для этого:
var favs = [];
var rest = [];
var items = $('body').find('.row').each(function() {
$(this).children('div').each(function(i) {
if ($(this).hasClass('fav')) {
favs.push($(this));
}
else {
rest.push($(this));
}
});
});
Моя проблема заключается в том, что мне нужно пройти через каждый пункт в items
, которое было бы <div>
из class=row
и заменить ребенку <divs>
с id=game#
. Вот моя попытка что:
$(items).each(function() {
$(this).children('div').each(function() {
if (favs.length == 0) {
//use rest[]
myText = $(rest[0]);
$(this).text($(myText).text());
rest.splice(0, 1);
}
else {
//use favs[];
toUse = $(favs[0]);
$(this).text($(toUse).text());
favs.splice(0, 1);
}
});
});
Похоже, что происходит в том, что, когда я начинаю писать по тексту текущего DIV, он меняет что-то в моем rest
массиве. Я уверен, что 1000 раз, что rest
не содержит ни одного из этих значений, но они все еще печатаются. Вот как выглядит вывод, как:
Game 4 (fav)
Game 5 (fav)
Game 8 (fav)
Game 4 (fav)
Game 5 (fav)
Game 8 (fav)
Game 8 (fav)
Game 8 (fav)
Так Игра 4 (FAV), Игра 5 (FAV), и игра 8 (FAV) должны быть в favs
и они получают распечатывается правильно, все после того, как первые три - это то, что неправильно.
Результат должен быть:
Game 4 (fav)
Game 5 (fav)
Game 8 (fav)
Game 1
Game 2
Game 3
Game 6
Game 7
Может кто-то предложить некоторое представление о том, что может быть причиной этого?
Благодаря
остальное [г] и Favs [ е]. Каковы настройки «r» и «f»? Также - вот для этого сценарий. http://jsfiddle.net/qhnDD/ – TravJenkins
о, извините. забыл заменить их в пару мест. они не очень нужны, оба установлены в 0s. Я думал, что мне нужно будет отделить индексы, чтобы отслеживать, где я нахожусь в каждом массиве, но так как я удаляю каждый элемент из массива, как я использую, он всегда будет 0. –
Какой должен быть конечный результат? – letiagoalves