2016-02-09 155 views
0

我有一個JavaScript變量是許多不同的文本行(html標記)的合併。見下文。來自我注入該函數的數據對象的圖像屬性的信息可能是也可能不是空白。所以,我想要一個基本的if語句來檢查它是否爲空,如果是,則輸出其他文本。嵌套,如果聲明裏面的Javascript變量

function(data) { 

    var div = [ 
     <a href="/profile/'+data.message.name+'">', 
      if (data.message.image == "") { 
       // Some other string 
      } 
      <img src="/images/profiles/'+data.message.image+'" alt="#"/>', 
     </a>', 
    ].join(''); 
} 

是否有可能在這樣的變量嵌套一個If語句?如果是這樣,那麼正確的語法是什麼?

謝謝!

+1

[有條件(三元)運營商](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Operators/Conditional_Operator) –

+1

您不能像這樣混合JavaScript和HTML ... –

+0

謝謝,阿倫。這工作。 –

回答

1

條件(三元)運算符

的JavaScript還包含一個值分配給基於一些條件的變量的條件運算符。

語法

variablename = (condition) ? value1:value2 
0

""將falsey值,因此你可以使用||運營商嘗試相同。

試試這個:

function test(data) { 
 
    var image = 'Some other string'; 
 
    var div = [ 
 
    '<a href="/profile/' + data.message.name + '">', 
 
    '<img src="/images/profiles/' + (data.message.image || image) + '" alt="#"/>', 
 
    '</a>' 
 
    ].join(''); 
 
    alert(div); 
 
} 
 
test({ 
 
    message: { 
 
    name: 'Test Name', 
 
    image: '' 
 
    } 
 
});

0

我不知道你想寫這樣的代碼,你可以使用jQuery的方法追加爲您的解決方案是什麼。

爲您的代碼,這將工作

div = [] 
div.push '<a href="/profile/'+data.message.name+'">' 
if data.message.image == "" 
    //do something 
    div.push "someting" 
div.push '<img src="/images/profiles/'+data.message.image+'" alt="#"/>' 
div.push '</a>' 
div.join('') 

此代碼是用咖啡,但是你會明白的。