javascript
2012-10-09 22 views 0 likes 
0

現在基本上我有2個按鈕,它們都使用相同的模板來獲取JSON數據,然後在同一個div中顯示模板內容,清除HTML並根據需要插入。我的問題是,1個按鈕需要我提供位置編號<span class="positionNumber">'+i+'</span>而另一個不是,有沒有一種方法,我可以添加或刪除這個從模板基於按鈕選擇一個條件或類似的東西?在注入dom之前有條件地隱藏/刪除模板化數據?

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>'; 
+0

您可以編輯該模板?或者當它被訪問時,你知道你的代碼中哪個按鈕被按下了嗎? – TuomasR

+0

嘿耶我知道什麼按鈕被按下,我也有訪問編輯模板 – styler

回答

0

也許它矯枉過正這一點,但你試過了jQuery插件TMPL。

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

您可以指定如果沒有設置則沿着

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

線模板中的語句我是span標籤不會出現。

編輯:或者選中我並在需要時相應地追加模板字符串。

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>'; 
+0

是的,我認爲這可能是矯枉過正使用模板插件,因爲我真的不必模板那麼多,但謝謝 – styler

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>'; 
相關問題