innerHTML在if / else中不起作用

时间:2014-12-05 11:01:11

标签: javascript html

我制作了一个基于文本的小游戏,我试图通过Youtube-embeds整合一些背景音乐。可能不是最好的解决方案,但为了我的目标,它可以工作:)

我有一个用多个数据集合构建的Javascript数据库,构建如下:

{
        "question":"blabla.",
        "answers":[
            {"title":"Left","response":3},
            {"title":"Right","response":2}
            ],
        "youembed":"<iframe id='youtube' width='100' height='100' src='http://www.youtube.com/embed/VIIOVtWGSj8?autoplay=1' frameborder='0' allowfullscreen></iframe>"
    },

我使用以下部分将数据库中的内容放在我的HTML中:

document.getElementById("question").innerHTML = db[currentLocation].question;

但是,如果youembed的长度超过0,我只希望db[currentLocation].youembed实际放在HTML中。

所以我写了以下内容:

if (youembed > 0) {
    document.getElementById("youembed").innerHTML = db[currentLocation].youembed;        
}

每当我在if语句之外使用document[..].youembed时,它的工作没有问题,但是,我希望它在if语句中工作,所以它不能替换当前播放的歌曲,直到db[currentLocation].youembed为&gt; 0

我做错了什么?我在代码中放置了一个alert(youembed),所以我可以看到长度,它确实显示了一个你有一个是0,另一个在第2页是145,但它没有运行{{1在这种情况下的陈述。

这是完整的Javascript代码:

if

2 个答案:

答案 0 :(得分:1)

你应该使用

if(youembed.length){
   ...
}

答案 1 :(得分:1)

你没有比较长度,这就在这里

if (youembed > 0) { ... }

应该是

if (youembed.length > 0) { ... }

示例代码:http://jsfiddle.net/f7cedqrf/