2016-09-13 66 views
0

这里是我到目前为止追加列表元素中多次变基础

var count_element = $('div.wp-playlist-item > li').length; 
totalcount = 10 - count_element; 
if (totalcount > 1) { 
     $('div.wp-playlist-item').append('<li class="wp-playlist-caption"><div title="" data-original-title="" data-toggle="tooltip" data-title="0:00" data-placement="left" class="next-songs"><span class="wp-playlist-item-title">Blank</span></div></li>'); 
} 

基本上我试图让这个div.wp-playlist-item总是有10个列表元素。

所以,除非totalcount = 0(10 - 10),追加这个列表元素。

在我目前的测试环境中,totalcount等于8,所以我们想要触发我们的append命令8次。

我目前的代码正常工作只发射一次正确的追加。

回答

1
var count_element = $('div.wp-playlist-item > li').length; 
totalcount = 10 - count_element; 
if (totalcount > 1) { 
    for (var i=0; i< totalcount; i++) { 
    $('div.wp-playlist-item').append('<li class="wp-playlist-caption"><div title="" data-original-title="" data-toggle="tooltip" data-title="0:00" data-placement="left" class="next-songs"><span class="wp-playlist-item-title">Blank</span></div></li>'); 
    } 
} 

演示https://jsbin.com/qanoput/edit?html,js,output

试试这一次循环,并追加。

+0

哇超级简单。认为它会比这更复杂。谢谢你,你是第一个。还为演示+1。 – bbruman

1

如果我正确理解你的问题,for循环应该做你需要的。另外,我相信你想totalCount为大于0,而不是1:

if (totalcount > 0) { 

     var i = 0, 
      appendedElement = ''; 

     for(; i < totalCount; i++) { 
      appendedElement += '<li class="wp-playlist-caption"><div title="" data-original-title="" data-toggle="tooltip" data-title="0:00" data-placement="left" class="next-songs"><span class="wp-playlist-item-title">Blank</span></div></li>'; 
     } 

    $('div.wp-playlist-item').append(appendedElement); 
} 

注意这种方法的好处是,你在for环路串联,这应该是快,append()只执行一次而不是多次。

+0

Woops,是! 'totalcount> 0'是正确的。谢谢 – bbruman

0

if语句只运行一次,因为它不在里面或被循环调用。 如果你想运行的代码倍的X号添加代码的函数内,创建一个循环调用该函数

var totalCount = 10 - count_element; 

for (var i = 0; i < totalCount; i++) { 
    myFunction() 
}; 

function myfunction(){ 
//your code here 
}