JQuery Datatables - 使用javascript条件语句返回html

时间:2017-09-17 21:38:44

标签: javascript jquery html codeigniter datatable

我目前正在使用JQuery Datatables显示数据的项目。我正在使用datatables render方法在显示之前格式化我的数据。我被困在一个我需要返回一些html的地方,但是javascript if if between between between。 html包含字符串,html元素,JS变量,然后是if语句。这就是我想要做的事情:

"columnDefs": [
   { 
     "targets": [0],
     "render": function ( data, type, full ) {
         return  my_stuff;
     }   
   }
 ]

my_stuff不是变量,而是我想要返回的html。我在这里用它来代表我想要实现的目标。以下是我想准确放置my_stuff的地方:

'<div class="row">' +
'<div class="col-md-1">' +
if (full[0] == '1') { 
    '<a href="#profile-img-full-' + poster + '" data-toggle="modal" title="Click to view full image">' +
    '<img class="poster-photo" src="<?php echo base_url(); ?>assets/img/profile-images/' +full[1]+ '" /> </a>' +
} else if (full[0] == 'M') { 
    '<img class="poster-photo" src="<?php echo base_url(); ?>assets/img/avatars/avatar-male-user.png" />' +
} else if (full[0] == 'F') { 
    '<img class="poster-photo" src="<?php echo base_url(); ?>assets/img/avatars/avatar-female-user.png" />' +
} 
'</div>' +  
'<div class="col-md-11">' +    
'<span style="color: blue"> Posted by: </span>'  +               
if (full[2]  == username ) { 
    'You'                       
} else { 
    '<a href="<?php echo base_url(); ?>user/' + poster + '">' +full[2]+ '</a>' +
}
'<br/></div></div>' +
'<div class="post-body">' + full[3] + '</div>';

当我测试这个时,我的表会消失,但是当我删除if语句时,一切顺利。所以我猜我不能在return语句中使用if语句,或者说我做得不对。此外,以这种方式返回html元素对我来说似乎并不合适,因为我有更多的东西要返回,只是在这里发布了一些。那么有更好的方法吗?我正在使用Code Igniter框架,以防万一。总之,我如何返回类似的东西,而不必通过将所有内容括在引号中来欺骗Javascript来认为它是一个字符串?

1 个答案:

答案 0 :(得分:1)

你的代码不正确,你不能在concat中使用BoxModule条件,你想要的是三元运算符,你必须这样做:

IF

如您所见,您需要使用三元组,请参阅this链接以获取有关三元运算符的详细信息。