2011-09-03 165 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