У меня есть некоторый вклад от звонка json, который дает мне очень большой список из 30 брендов. Я хочу разделить список на три отдельные ul. Таким образом, каждая ul имеет 10 брендов.
У меня есть это:
HTML:
<ul class="column_1">
</ul>
<ul class="column_2">
</ul>
<ul class="column_3">
</ul>
Jquery:
<script type="text/javascript">
$.getJSON('http://link.to.brands/?format=json', function(data){
var count = 1;
$.each(data.brands, function(index, brand){
$('<li><a href="'+brand.url+'" title="'+brand.title+'">'+brand.title+'</a></li>').appendTo('.block.third .column_'+count);
count++
});
});
</script>
Теперь первые три бренда помещаются в ul вместо блоков из 10. Так что я думаю, что мой подход ошибочен. Как мне это сделать. Некоторые объяснения более приветствуются!
1, 2, 3, 1, 2, 3, 1, 2, 3,...
Если ты хочешь:
B1 | B2 | B3
B4 | B5 | B6
B7 | B8 | B9
B10 | B11 | B12
B13 | B14 | B15
B16 | B17 | B18
B19 | B20 | B21
B22 | B23 | B24
B25 | B26 | B27
B28 | B29 | B30
то вы в основном там: просто замените
count++
с
count = (count % 3) + 1
Кроме того, если вы хотите:
B1 | B11 | B21
B2 | B12 | B22
B3 | B13 | B23
B4 | B14 | B24
B5 | B15 | B25
B6 | B16 | B26
B7 | B17 | B27
B8 | B18 | B28
B9 | B19 | B29
B10 | B20 | B30
затем измените свой .appendTo
на:
.appendTo('.block.third .column_' + (Math.floor(index / 10) + 1))
и вы можете полностью избавиться от переменной count
.
.block.third.column_
вместо .block.third .column_
или что-то еще?
Попробуйте что-то вроде этого
<script type="text/javascript">
$(document).ready(function () {
var _licount = 30;
var _liperul = _licount / 3;
$('ul').each(function () {
var str = '';
for (var i = 0; i < _liperul; i++) {
str += '<li>Hello</li>';
}
$(this).append(str);
});
});
</script>
Пытаться
$.getJSON('http://link.to.brands/?format=json', function (data) {
$.each(data.brands, function (index, brand) {
$('<li><a href="' + brand.url + '" title="' + brand.title + '">' + brand.title + '</a></li>').appendTo('.block.third .column_' + (Math.floor(index / 10) + 1));
});
});
%
) 10 в конце там
5%10
даст 5 не 1, а 5/10 + 1)
даст 1
count++
наcount = (count % 3) + 1
, чтобы после третьего столбца он снова возвращался кcolumn_1
, вместо того, чтобы пытатьсяcolumn_4
и так далее.