基于变量附加列表元素多次

时间:2016-09-13 17:26:17

标签: javascript jquery append

这是我到目前为止所拥有的

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,所以我们要触发8次附加命令。

我当前的代码只能正常启动一次。

3 个答案:

答案 0 :(得分: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

尝试一次循环并追加。

答案 1 :(得分: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()只执行一次而不是多次。

答案 2 :(得分:0)

if语句只运行一次,因为它不在内部或从循环中调用。 如果要运行代码X次,请在函数内添加该代码并创建一个调用该函数的循环

var totalCount = 10 - count_element;

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

function myfunction(){
 //your code here
}