如何添加条件中间追加

时间:2014-03-28 11:31:31

标签: jquery html append

我有这个jquery代码,其中将东西附加到一个div:

$("#destinations ul").append('<li>' +
            '<h2>' +  destination[i].city + '</h2>' +
            '<p>' + destination[i].desc + 'p>' + 
            '<div class="meta">' +
            '<span class=meta-date>Added ' + destination[i].added_date + '</span>' +
            '<span class="meta-comments"><a href="' + destination[i].url + '#reply">' + destination[i].comment_amount + ' comments</a></div>' +
            '</div></li>');

这完美无缺。除非我没有任何评论或约会的情况。然后我看到带有文字的div&#39;已添加&#39;没有约会。所以我想把meta-date和meta-comments行作为条件。像:

   if (added_date) {
 '<span class=meta-date>Added ' + destination[i].added_date + '</span>' +
}

但是如果我在我的第一个代码中添加它,它会给我错误。我怎么办?我应该如何修改我的代码?这很简单,但我现在遗漏了一些东西,但不知道是什么。脑冻结:)

3 个答案:

答案 0 :(得分:1)

试试这个,

var str = '<li><h2>'+destination[i].city+'</h2><p>'+destination[i].desc+'p>'+ 
           '<div class="meta">';
if (added_date) {
   str += '<span class="meta-date">Added '+destination[i].added_date+'</span>';
}
str += '<span class="meta-comments"><a href="'+destination[i].url+'#reply">'+
         destination[i].comment_amount+' comments</a></span>' +
        '</div></li>';
$("#destinations ul").append(str);

答案 1 :(得分:0)

$("#destinations ul").append('<li>' +
        '<h2>' +  destination[i].city + '</h2>' +
        '<p>' + destination[i].desc + 'p>' + 
        '<div class="meta">' +
        (added_date)?'<span class=meta-date>Added ' + destination[i].added_date + '</span>' : '') +
        '<span class="meta-comments"><a href="' + destination[i].url + '#reply">' + destination[i].comment_amount + ' comments</a></div>' +
        '</div></li>');

如果需要,您可以更改''空字符串

答案 2 :(得分:0)

尝试这一定肯定会有效......

$(document).ready(function(){ 
    $('#destination ul').append(function(n){
       var appendstr = '<li><h2>'+destination[i].city+'</h2><p>'+destination[i].desc+'p>'+ 
       '<div class="meta">';
        if (date) {
            appendstr += '<span class="meta-date">Added '+destination[i].added_date+'</span>';
        }
        appendstr += '<span class="meta-comments"><a href="'+destination[i].url+'#reply">'+
     destination[i].comment_amount+' comments</a></span>' +
    '</div></li>';
    return appendstr;
        });
  });