0

基本上目前我有 2 个按钮,它们都使用相同的模板来获取 JSON 数据,然后在同一个 div 中显示模板化的内容,清除 HTML 并根据需要插入。我的问题是 1 个按钮需要我提供位置编号<span class="positionNumber">'+i+'</span>,而另一个则不需要,有没有办法可以根据使用条件或类似条件选择的按钮从模板中添加或删除它?

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 并在需要时相应地附加模板字符串。

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 回答