2011-08-12 33 views
4

我有一個javascript數組,並在div中填充以下數據。該陣列如下Javascript loops

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

我想實現一個包含div集合的div的分頁,每個div都包含上述數組的數據。即div 1將包含abc,div 2將包含def等等...

我發送的頁面沒有被點擊,並且要在一個頁面中顯示的div的最大數量到一個函數。我設置的div的max_num被顯示爲2.該函數如下。

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

在這裏我必須運行一個循環,其中div集合將被填充。即如果pageno爲'0',則應該看到abc,def div。如果pageno是'1',那麼ghi,jkl div應該被渲染。我認爲,而不是我= 0,我必須初始化爲其他變量。

回答

0

如果你問如何初始化我,我相信你的意思是:

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

假設您做生意開始於0,按你的文字。

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

通過這一解決方案,無論在哪裏你的網頁將開始或max_num會是什麼,它總是會返回正確的頁面,它永遠不會過時的數組邊界。

+0

但在經過您做生意爲2值來自def和ghi,而不是ghi和jkl – Bhaskar

+0

@Bhaskar:你的頁面是從0開始的還是'1'?我編寫了代碼,所以頁面可以從'1'開始,因爲這是他們通常的做法。 – Shef

+0

頁面從0開始 – Bhaskar

7

請使用Array.Slice

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

演示在這裏:http://jsfiddle.net/naveen/Ctp99/

在一個不相關的邊注,在Array聲明應該是new Array()而不是 new array()