如果变量为空,则不显示与显示相关的HTML

时间:2012-06-06 02:46:47

标签: javascript facebook-graph-api cordova

我正在开发一个PhoneGap iOS Facebook应用程序,我正在努力展示用户的新闻源。到目前为止,这是我的代码:

<script>
function showPosts() {
    FB.api('/me/home', function(response) {
        console.log(response);

        if (!response.error) {
            var markup = '';

            var messages = response.data;

            for (var i = 0; i < messages.length && i < 5; i++) {
                var message = messages[i];

                markup += '<p><img src="' + message.picture + '">' + message.message + '<img src="https://graph.facebook.com/' + message.from['id'] + '/picture">' + message.from['name'] + '</p><br>';
            }

           document.getElementById('newsfeedposts').innerHTML = markup;
        }
    });
}
</script>

现在,如果帖子中没有留言,则会显示“未定义”。此外,当没有消息图片时,会有一个空图像图标,因为<img>标记仍在加载中。是否可以创建一个if语句,说明message.picture是否为空而不是显示<img src="message.picture">

发布消息也是如此。如果message.message为空,我是否可以创建if语句,如果没有消息则不显示任何内容,消除“undefined”?

如果if语句有效,我应该在哪里放置它?我尝试在“标记”中放置一个if语句,但我无法使其工作。

2 个答案:

答案 0 :(得分:1)

非常简单:

if (typeof message.picture != 'undefined') {
  // message.picture is not empty, so do the stuff inside of here.
}

答案 1 :(得分:0)

由于message将始终存在,picture位于message内,即使picture未定义,也不会产生错误。因此,你可以这样做:

if (message.picture) {
    //Do things here.
}