То, что вы ищете, называется «нумерацией страниц», и есть (как всегда) плагин jQuery, который сделает эту работу за вас:
http://d -scribe.de / WebTools / JQuery-пагинация / демо / demo_options.htm
(Загрузить здесь )
Редактировать: Поскольку вы, похоже, не можете заставить его работать, вот один из способов (из нескольких), как вы можете использовать плагин.
Шаг 1: Создайте разметку из ваших JSON-данных, как показано ниже:
<div id="display">
<!-- This is the div where the visible page will be displayed -->
</div>
<div id="hiddenData">
<!-- This is the div where you output your records -->
<div class="record">
<!-- create one record-div for each record you have in your JSON data -->
</div>
<div class="record">
</div>
</div>
Идея состоит в том, чтобы при нажатии ссылки на страницу скопировать соответствующую запись в экранный блок. Поэтому плагин предлагает функцию обратного вызова pageSelect. Шаг 2 - реализовать эту функцию, например:
function pageselectCallback(pageIndex, jq){
// Clone the record that should be displayed
var newContent = $('#hiddenData div.record:eq('+pageIndex+')').clone();
// Update the display container
$('#display').empty().append(newContent);
return false;
}
Это будет означать, что у вас есть одна страница на запись. Если вы хотите отобразить несколько записей на странице, вы должны соответствующим образом изменить вышеуказанную функцию.
Третий и последний шаг - правильно инициализировать все это.
function initPagination() {
// Hide the records... they shouldn't be displayed
$("#hiddenData").css("display", "none");
// Get the number of records
var numEntries = $('#hiddenData div.result').length;
// Create pagination element
$("#pagination").pagination(numEntries, {
num_edge_entries: 2,
num_display_entries: 8, // number of page links displayed
callback: pageselectCallback,
items_per_page: 1 // Adjust this value if you change the callback!
});
}
Итак, вам просто нужно сгенерировать разметку HTML из ваших данных JSON и впоследствии вызвать функцию init.
Это не так сложно, не так ли?