0

我正在使用 javascript 编写一个 HTML 循环。它将遍历一系列图像并显示附加信息。如此处所示,HTML 输出上似乎总是显示一个 NaN。在此处输入图像描述

这是有问题的javascript:

var caption = '<p></p>';
if($.isEmptyObject(data[i].caption) !== true)
{
    caption = '<p class="caption" style="top:'+data[i].height+'px;">'+
            data[i].caption +
          '</p>';
}
var li = '<li data-uk-modal="{target:#modal-open-image}"'
        + 'class="open"'
        + 'image="'+ data[i].photo +'"'
            + 'caption_height="'+ data[i].height +'"'
        + 'caption="'+ data[i].caption +'">'
        + '<a href="#" class="uk-thumbnail uk-overlay-toggle">'
        + '<div class="uk-overlay">'
        + '<img src="'+ data[i].photo +'" width="250px"/>'
        + caption +
        + '<div class="uk-overlay-caption">'
        + '<p> Sender: ' + data[i].sender + '</p>'
            + '<p> Date: ' + data[i].date + '</p>'
            + '<p> limit: '+ data[i].limit + '</p>'
        + '<p> counter: ' + data[i].counter + '</p>'
        + '</div>'
        + '</div>'
        + '</a>'
        +'</li>';
        $photo.append(li);

在此处输入图像描述

我认为问题出在标题变量上。data[i] 是来自数据库查询的数组。

在此处输入图像描述

我需要检查 data[i].caption 上是否有内容。我尝试使用长度,但这不起作用,所以我检查对象是否存在。虽然我不确定这是否有效。

我的问题是如何正确显示检查标题是否为空,如果没有则不会在 var li 上添加任何内容。

谢谢。

4

3 回答 3

0

您可以在一行中编写代码:

( (data && data[i] && data[i].caption) ? " your stuff " : "") 

但请注意,在 javascript 中检查 'data[i].caption' 意味着:零为假,空字符串为假。此外,如果您引用一个数字,您可以使用isNaN方法添加条件

于 2013-09-17T06:35:43.433 回答
0

感谢您的反馈。我设法吞噬了你游戏我的解决方案,我最终得到了这个。

var height = (data[i].height == null)?0:data[i].height;
var caption= (data[i].caption== null)?'':data[i].caption;   
var li = '<li data-uk-modal="{target:\'#modal-open-image\'}"'
        + 'class="open"'
        + 'image="'+ data[i].photo +'"'
        + 'caption_height="'+ height +'"'
        + 'caption="'+ caption +'">'
        + '<a href="#" class="uk-thumbnail uk-overlay-toggle">'
        + '<div class="uk-overlay">'
        + '<img src="'+ data[i].photo +'" width="250px"/>'
        + '<p class="caption" style="top:' + height +'px;">'
        + caption
        + '</p>'
        + '<div class="uk-thumbnail-caption">'
        + '<p> Sender: ' + data[i].sender + '</p>'
        + '<p> Reciever: '+ data[i].reciever + '</p>'
        + '<p> Date: ' + data[i].date + '</p>'
        + '<p> limit: '+ data[i].limit + '</p>'
        + '</div>'
        + '</div>'
        + '</a>'
        +'</li>';
于 2013-09-17T07:47:54.940 回答
0

请用这个代替'+标题+'

isNaN(data[i].caption) ? '' : data[i].caption 

or if(isNaN(data[i].caption)==true){

  //do somthing
}else{

 //do somthing

}
于 2013-09-17T06:41:31.037 回答