2011-09-03 159 views
1

嗨我想從1-100沒有在每行輸入一個列表。我知道這是一個while循環,但我從來沒有使用while循環...謝謝。jQuery while循環來生成列表

<ul> 
    <li>9.99</li> 
    ... 
    <li>9.01</li> 
    </ul> 

我踢自己提前...

回答

2
var $ul = $('<ul>'); 

for (var i = 999; i > 900; i--) { 
    $ul.append('<li>' + (i/100).toFixed(2) + '</li>'); 
} 

現場演示:http://jsfiddle.net/2YpxG/2/

+0

+1提供一個小提琴! –

+0

太棒了......只是不得不逃脫 – webwrks

2
<ul></ul><script> 
var $ul = $("ul"); 
for(i = 99; i >= 1;i--){ 
    o = ''; 
    if (i < 10) 
     o = 0 ; 
    $ul.append('<li>9.'+o+i+'</li>'); 
}</script> 

http://sandbox.phpcode.eu/g/b0514

+0

緩存在可變的參考UL元件。在循環內部進行選擇器搜索(如'$('ul')')可能會導致網站崩潰。 –

+0

@imeVidas:不是網站,因爲JavaScript是客戶端 – genesis

+0

對不起,我的意思是網頁加載到瀏覽器窗口中... –

0
var _ul = $('ul'); 
for(i=1;i<1000;i++){ 
    $('<li/>').html((i/100).toFixed(2)).prependTo(_ul); 
} 

演示:http://jsfiddle.net/AlienWebguy/XPrmm/

+1

問題在於你在循環的每次迭代中訪問DOM。最好避免在循環內進行DOM操作(如果可能的話),因爲這對於JS引擎來說是不必要的負擔。如果UL元素已經存在於DOM中,您可以(1)臨時分離它,或者(2)將LI放置在臨時UL中,然後在循環之後將它們轉移到實際的UL(一次全部)。 –

+0

我必須糾正自己,這對JS引擎來說不是一種負擔,但是在每次DOM操作之後,網頁都會重新排列,所以這對佈局引擎來說是不必要的負擔。 –

+0

雅我知道,只是寫在匆忙;) – AlienWebguy