2011-08-12 4 views
4

J'ai un tableau en javascript avec les données suivantes à remplir dans les divs. Le tableau se présente comme suitBoucles Javascript

var array1 = new array('abc','def', 'ghi', 'jkl','mno'); 

Je veux mettre en œuvre pour une div pagination contenant ensemble de divs se tenant avec les données de la matrice ci-dessus. c'est-à-dire, div 1 contiendra abc, div 2 contiendra def et ainsi de suite ...

J'envoie la page aucun nombre cliqué et maximum de divs à afficher dans une page à une fonction. Je mets max_num de divs à afficher est 2. La fonction est la suivante.

function renderPagination(pageno, max_num){ 
    for(var i=0;i< max_num; i++){ 
    } 
} 

Ici, je dois exécuter une boucle où l'ensemble des divs à remplir. c'est-à-dire que si pageno est '0', les divs abc, def devraient être vus. Si pageno est '1', les divs ghi, jkl devraient être rendus. Je pense qu'au lieu de i = 0, je dois initialiser à une autre variable.

Répondre

0

Si vous demandez comment j'initialisez, je crois que vous voulez dire:

for(var i=pageno*max_num;i< max_num; i++){ 
} 

pageno En supposant commence par 0, selon votre texte.

0
var array1 = ['abc','def', 'ghi', 'jkl','mno']; 

function renderPagination(pageno, max_num){ 
    max_num += pageno; // max_num will be max_num + pageno 

    // make sure max_num will not go out of bounds 
    if(max_num > array1.length){ 
     max_num = array1.length; 
    } 

    for(pageno; pageno < max_num; pageno++){ 
     console.log(array1[pageno]); 
    } 
} 
renderPagination(1, 2); 

See a demo

Avec cette solution, peu importe où votre page va commencer ou ce que le max_num sera, il retournera toujours les bonnes pages, et il ne sera jamais sortir des limites du tableau.

+0

Mais en passant pageno comme 2 la les valeurs viennent comme def et ghi au lieu de ghi et jkl – Bhaskar

+0

@Bhaskar: Vos pages vont-elles partir de '0' ou '1'? J'ai écrit le code afin que les pages puissent commencer à partir de «1», parce que c'est comme ça qu'elles le font normalement. – Shef

+0

Les pages commencent par 0 – Bhaskar

7

S'il vous plaît utiliser Array.Slice

function renderPagination(pageno, max_num) { 
    return array1.slice((pageno - 1) * max_num, pageno * max_num); 
} 

Demo ici: http://jsfiddle.net/naveen/Ctp99/

Sur un sans rapport avec côté note, la déclaration Array devrait être new Array() et non new array()

Questions connexes