2016-09-13 20 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回だけ発生させるためにのみ適切に機能します。

答えて

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ループが必要な処理を行う必要があります。また、私がいない1、あなたはtotalCountが0よりも大きくなるようにしたいと考えている:

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()は1回だけ実行されます複数回ではなく、

+0

Woops、yup! 'totalcount> 0'は正しいです。ありがとうございました – bbruman

0

if文は、ループ内に存在しないか、ループから呼び出されているため、一度だけ実行されます。 あなたはコードを何回Xの数を実行したい場合は、関数内にコードを追加し、

var totalCount = 10 - count_element; 

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

function myfunction(){ 
//your code here 
} 
関連する問題