0

基本的に現時点では、同じテンプレートを使用して JSON データを取得し、テンプレート化されたコンテンツを同じ div に表示し、HTML をクリアして必要に応じて挿入する 2 つのボタンがあります。私の問題は、1 つのボタンでは位置番号を提示する必要がある<span class="positionNumber">'+i+'</span>のに対し、もう 1 つのボタンではそうではないことです。条件などで選択したボタンに基づいて、テンプレートからこれを追加または削除する方法はありますか?

JS

var template = '<a href="http://www.youtube.com/embed/'+data.feed[i].code+'" class="videoEntry videoBg'+i+'" target="_blank"><img src="http://img.youtube.com/vi/'+data.feed[i].code+'/0.jpg" alt="'+data.feed[i].title+'" class="videoThumb" /><span class="positionNumber">'+i+'</span><h2>'+data.feed[i].title+'</h2></a>';
4

2 に答える 2

0

これはやり過ぎかもしれませんが、jquery tmpl プラグインを試しましたか。

http://api.jquery.com/jquery.tmpl/

次の行に沿って、テンプレート内で if ステートメントを指定できます。

{{if ${i}}} <span class="positionNumber">'+i+'</span> {{/if}}

i が設定されていない場合、span タグは表示されません。

編集: または、必要に応じて i をチェックし、それに応じてテンプレート文字列を追加します。

var template = '<a href="http://www.youtube.com/embed/'+data.feed[i].code+'" class="videoEntry videoBg'+i+'" target="_blank"><img src="http://img.youtube.com/vi/'+data.feed[i].code+'/0.jpg" alt="'+data.feed[i].title+'" class="videoThumb" />';
        if (typeof i != 'undefined'){
            template += '<span class="positionNumber">'+i+'</span>';
        }
        template += <h2>'+data.feed[i].title+'</h2></a>';
于 2012-10-09T10:52:50.840 に答える
0

他の回答 (テンプレートを編集する) と同じ提案ですが、三項演算子を使用するのがよりクリーンなアプローチになる可能性があります。

var template = '<a href="http://www.youtube.com/embed/'+data.feed[i].code+'" class="videoEntry videoBg'+i+'" target="_blank"><img src="http://img.youtube.com/vi/'+data.feed[i].code+'/0.jpg" alt="'+data.feed[i].title+'" class="videoThumb" />' + (typeof i == undefined ? '<span class="positionNumber">'+i+'</span>' : '') + '<h2>'+data.feed[i].title+'</h2></a>';
于 2012-10-09T11:56:09.207 に答える