JavaScript - 在append()中使用if语句

时间:2017-09-17 13:38:33

标签: javascript jquery

我在循环中使用它:

 $(".somediv").append('text' + array[key].arrayelement + 'sometext'+ array[key].nextelementinArray + 'moretext']);

如何实现这一点:如果array[key].arrayelementnull(是的,它可能只是文字'null'),那么做一件事,如果不是,那么另一件事? / p>

我尝试了这个可附加的文本来制作2个变量,但它没有用。

card.append('<div class="col-sm-12 col-md-6 col-lg-4"><div class="info-block bg-grey m-b-2 p-a-2"><h4 class="h4 underline-sm"> ' + response[key].firstname + ' ' + response[key].lastname + ' '  + '</h4><div class="col-sm-8 text-xs-left">                        <p class="m-b-1"><b>'+ response[key].job_title + '<br>Tööruum:' + $.trim(response[key].room) + '</b></p><a href="mailto:' + $.trim(response[key].email) + '">' + $.trim(response[key].email) + '</a><p class="m-b-0">' + $.trim(response[key].phone) + ' ' + $.trim(response[key].cell_phone) + '</div><div class=" col-sm-4 text-xs-right m-b-1"><img src="' + $.trim(response[key].image) + '" class="rounded-circle lg" alt=""></div></div></div>');

简单得到:但我不想看到

Tööruum: ' + response[key].room

当房间值为文本'null'时。我在里面尝试了这个,这个响应[关键]的房间在哪里。

`function(){if(response[key].room===null) {return " ";}else {return '<br>Tööruum: + response[key].room';}};

但是nada。

4 个答案:

答案 0 :(得分:2)

您可以使用Ternary Operator,并将您的语句和解析包装到()括号中以隔离逻辑:

$(".somediv").append('text' + (array[key].arrayelement == 'null' ? <one thing> : <other thing>) + 'sometext'+ array[key].nextelementinArray + 'moretext']);

答案 1 :(得分:1)

您可以使用回调,并执行任意数量的操作

$(".somediv").append(function() {
    if ( array[key].nextelementinArray === null ) {
         return "something";
    } else if ( array[key].nextelementinArray ) {
         return "something else";
    } else {
         return "fail";
    }
});

答案 2 :(得分:0)

根据条件

添加
if (array[key] && array[key] !== 'null') {
    $(".somediv")append('text' + array[key].arrayelement + 'sometext'+ array[key].nextelementinArray + 'moretext']);
}

答案 3 :(得分:-1)

也许你可以通过ternary operator解决这个问题? 类似于:

(array[key].arrayelement == null ? 'some backup value' : array[key].arrayelement)

更多&#34; javascripty-way&#34;看起来像是:

(array[key].arrayelement || 'some backup value')

如果你想做一些更复杂的事情,你可以使用内联函数:

...'text' + (function(){
             //do whatever logic you want
             //return string to append
             return "my uber string";
           })() + //rest of your concatenation