2014-12-07 67 views
-1

美好的一天,当如何添加if语句追加字符串的Javascript

我对我怎么能够追加字符串时添加我的循环内的if语句混淆。

继承人我的代码

html += '<tr><td></td>'+ 
      '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ 
      '<td>'+x.transactionType+'</td>'+ 
      '<td>'+x.id+'</td>'+ 
      '<td>'+if(x.description!=null){x.description}+'</td>'+ 
      '<td>'+x.ref_no+'</td>'+ 
      '<td class="align-right">'+x.debit+'</td>'+ 
      '<td class="align-right">'+x.credit+'</td>'+ 
      '<td class="align-right">'+val+'</td></tr>'; 
    }); 

我然后在中频部分得到一个语法错误的错误。谢谢您的帮助。它已经有一段时间了,因为我编码这就是为什么我有点困惑。

回答

2

您不能只在代码中的任何位置放置if语句。如果你需要在那个地方得到这个功能,你需要使用一个三元如果运营商?:

html += '<tr><td></td>'+ 
      '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ 
      '<td>'+x.transactionType+'</td>'+ 
      '<td>'+x.id+'</td>'+ 
      '<td>'+ (x.description!=null ? x.description : '')+'</td>'+ 
      '<td>'+x.ref_no+'</td>'+ 
      '<td class="align-right">'+x.debit+'</td>'+ 
      '<td class="align-right">'+x.credit+'</td>'+ 
      '<td class="align-right">'+val+'</td></tr>'; 

如果你想使用if无论如何,你应该引入一个变量,保存结果值:

var temp = ''; 
if (x.description != null) 
temp = x.description; 
html += '<tr><td></td>'+ 
      '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ 
      '<td>'+x.transactionType+'</td>'+ 
      '<td>'+x.id+'</td>'+ 
      '<td>'+ temp +'</td>'+ 
      '<td>'+x.ref_no+'</td>'+ 
      '<td class="align-right">'+x.debit+'</td>'+ 
      '<td class="align-right">'+x.credit+'</td>'+ 
      '<td class="align-right">'+val+'</td></tr>'; 
+0

非常感谢您为快速回答@Vsevolod!我真的很困惑,为什么我得到这个错误因为我认为它是非常正确的语法..反正非常感谢你为我清除这一个。 – melvnberd 2014-12-07 19:47:10

1

可以使用shorthand if/else这样的:

html += '<td>'+(x.description!=null ? x.description : '')+'</td>';

宏IDE代码:

html += '<tr><td></td>'+ 
      '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ 
      '<td>'+x.transactionType+'</td>'+ 
      '<td>'+x.id+'</td>'+ 
      '<td>'+(x.description!=null ? x.description : '')+'</td>'+ 
      '<td>'+x.ref_no+'</td>'+ 
      '<td class="align-right">'+x.debit+'</td>'+ 
      '<td class="align-right">'+x.credit+'</td>'+ 
      '<td class="align-right">'+val+'</td></tr>'; 
1

我认为你只需要打破你的拼接是这样的:

html += '<tr><td></td>'+ 
      '<td>'+moment(x.date_at).format('MM/DD/YYYY') +'</td>'+ 
      '<td>'+x.transactionType+'</td>'+ 
      '<td>'+x.id+'</td>'; 

if(x.description!=null) html+= '<td>' + {x.description} + '</td>'; 

html +=  '<td>'+x.ref_no+'</td>'+ 
      '<td class="align-right">'+x.debit+'</td>'+ 
      '<td class="align-right">'+x.credit+'</td>'+ 
      '<td class="align-right">'+val+'</td></tr>'; 
    });