“<li>”&lt; = 20添加空“</li> <li>”</li>

时间:2011-05-13 18:58:12

标签: javascript jquery

如果<li>计数小于或等于20,我试图在<ul>内添加<li>,但代码似乎不起作用......

我正在使用以下jQuery:

while ($(".mosaico > li").length() <= 20) {
   $('.mosaico').append('<li>test</li>');
};

似乎没有任何事情发生...... HTML是:

<ul class="mosaico">
    <li>
    </li>

    <li>
    </li>

    <li>
    </li>
</ul>

4 个答案:

答案 0 :(得分:6)

.length是属性,而不是函数。

但是你不应该像这样循环运行选择器。只需计算您需要的数量,并立即将它们全部添加。

var mosaico = $(".mosaico"),
    len = 20 - mosaico.children('li').length,
    str = '';

while( len-- > 0 ) {
    str += '<li>test</li>';
}

mosaico.append(str);

http://jsfiddle.net/pQXNT/2

答案 1 :(得分:3)

长度不是函数,请离开()

while ($(".mosaico > li").length <= 20) {
   $('.mosaico').append('<li>test</li>');
};

或在oneliner中执行:

 $(".mosaico")
   .append(
       $(new Array( 20 - $(".mosaico li").length + 1 )
         .join('<li>test</li>'))
    ); 

答案 2 :(得分:2)

使用.length代替.length()。还可以使用一些工具来调试JavaScript,例如Firebug for Firefox。

答案 3 :(得分:1)

为什么不使用for循环

for(i=0;i<20;i++)
{
   $('.mosaico').append('<li>test</li>'); 

}