在for循环jquery中添加if语句

时间:2018-02-18 19:50:03

标签: javascript jquery

我有一个javascript数组,其中包含有关人员的信息列表。 我将此数组动态填充到前端的表中。

但是,并非每个人都有一个网站。所以我想为网站输入条件,例如if(url !== "") {<a href="'+ list[i].url + '">Webseite</a>}

但它只是告诉我&#34;意外的令牌,如果&#34;。想法?

for(var i = 0; i < list.length; ++i ) {
   $(".list").append('\
     <tr>\
     <td>'+ list[i].name + '</td>\
     <td>' + list[i].area1 + ',<br> ' + list[i].area2 + ',<br> ' + list[i].area3 + '</td>\
     <td>'+ list[i].small_area + '</td>\
     <td>'+ list[i].studies + '</td>\
     <td>'+ list[i].email + '</td>\
     <td><a href="'+ list[i].url + '">Webseite</a></td>\
     <td>'+ list[i].other + '</td>\
     </tr>\
   ');
 };

4 个答案:

答案 0 :(得分:1)

你不能在追加内使用if条件,而是可以使用像这样的三元运算符

for (var i = 0; i < list.length; ++i) {
  $(".list").append('\
    <tr>\
    <td>' + list[i].name + '</td>\
    <td>' + list[i].area1 + ',<br> ' + list[i].area2 + ',<br> ' + list[i].area3 + '</td>\
    <td>' + list[i].small_area + '</td>\
    <td>' + list[i].studies + '</td>\
    <td>' + list[i].email + '</td>\
    <td>' + (list[i].url != null ? '<a href="' + list[i].url + '">Webseite</a>' : '') + '</td>\
    <td>' + list[i].other + '</td>\
    </tr>\
    ');

};

答案 1 :(得分:0)

试试这个

(list[i].url) ? list[i].url : ''

这是使用条件(三元)运算符

的简写if..else

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Conditional_Operator

答案 2 :(得分:0)

您可以在Webseite之前准备一个名为append的变量,然后将其添加到其余变量中。在一个案例中,它是另一个中的URL,它是空的。

 var list = [
 {name:"One",url:'http://google.com'},{name:"Two", url:""}
  
 ];
 
 for(var i = 0; i < list.length; ++i ) {
     
     
     if(list[i].url !== "") {
        var Webseite = '<a href="'+ list[i].url + '">Webseite</a>'
     }else{
        var Webseite = '';
     } 
     
     $(".list").append('\
    <tr>\
    <td>'+ list[i].name + '</td>\
    <td>' + list[i].area1 + ',<br> ' + list[i].area2 + ',<br> ' + list[i].area3 + '</td>\
    <td>'+ list[i].small_area + '</td>\
    <td>'+ list[i].studies + '</td>\
    <td>'+ list[i].email + '</td>\
    <td>' + Webseite + '</td>\
    <td>'+ list[i].other + '</td>\
    </tr>\
    ');
 }
td{
padding:10px;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="list"></div>

答案 3 :(得分:0)

您可以创建一个字符串作为结果,每次检查对象的元素是否存在然后添加它。

for(var i = 0; i < list.length; ++i ) {
    var result = '<tr>'
    result += '<td>'+ list[i].name + '</td>';
    result += '<td>' + list[i].area1 + ',<br> ' + list[i].area2 + ',<br> ' + list[i].area3 + '</td>';
    result += '<td>'+ list[i].small_area + '</td>';
    result += '<td>'+ list[i].studies + '</td>';
    result += '<td>'+ list[i].email + '</td>';
    if (list[i].url) {
      result += '<td><a href="'+ list[i].url + '">Webseite</a></td>';
    }
    result += '<td>'+ list[i].other + '</td>';
    result += '</tr>';
    $(".list").append(result);
  };