2011-04-29 65 views
0

我建立一個web應用程序是由年份排序數據的可視化表示爲創建一個列表項,目前有多年的有序列表中的HTML,即:每年使用JQuery

<ol id="years"> 
    <li>1900</li> 
    <li>1901</li> 
    <li>1902</li> 

&hellip;

<li>1950</li> 
</ol> 

,我寧願被自動在頁面加載由JavaScript生成的列表,因爲它很可能是今年的範圍會隨着時間而改變,我不想冒險的JavaScript和HTML不同步的。

對於其它功能我已經聲明變量firstYearlastYear在該列表中匹配的第一項和最後一項是,即:

var firstYear = 1900; 
var lastYear = 1950; 

我試圖立足於什麼樣子a similar question一些代碼但還沒有弄清楚如何正確地適應我的應用程序的要求。

如果任何人都可以幫我寫這個功能,那將不勝感激。

回答

1

試試這個:

var firstYear = 1900; 
var lastYear = 1950; 
for(var i =firstYear; i<=lastYear; i++) { 
     $('#years').append('<li>'+i+'</li>') 
} 
+0

天才,完美。謝謝:) – adnrw 2011-04-29 06:31:56

+1

注意:由於你做了很多附加操作,如果你先從DOM中獲得[#define](#api.jquery.com/detach/)'#years',這將會更快,然後在完成後追加它。請參閱:[jsFiddle](http://jsfiddle.net/entropo/8EjS7/) – entropo 2011-04-29 06:45:21

+1

@entropo感謝您的提示,我一定會這樣做,因爲它也在同時對加載進行一堆計算。乾杯。 – adnrw 2011-04-29 07:06:37

0
$(document).ready(function() { 
    var firstYear = 1900; 
    var lastYear = 1950; 

    for (var i = firstYear; i++; i <= lastYear) { 
    $('<li>' + i + '</li>').appendTo('ol#years'); 
    } 
}); 
0

你的意思是你想生成中給出的啓動和停止一年之間的年數?

<ul id='years'> 
</ul> 

var startYear = 1950; 
var endYear = 1965; 

var $years = $('#years'); 
for (var i = startYear; i <= endYear; i++) { 
    $years.append('<li>' + i + '</li>'); 
} 
0

你可以這樣做

function createYearList(start, end){ 
    var ul = $('<ul>').appendTo('body'); 

    for (i = start; i <= end; i++) 
    { 
     $('<li>').html(i).appendTo(ul); 
    } 
} 

$(document).ready(function(){ 
    createYearList(1900, 1950); 
}); 

演示:http://jsfiddle.net/ynhat/ngmNF/