2016-02-09 92 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('') 

此代码是用咖啡,但是你会明白的。