2014-12-07 64 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>'; 
    });