JavaScript为什么我的全局数组变空? Console.log显示短暂时间的正确值

时间:2018-01-02 21:59:02

标签: javascript jquery

我无法弄清楚这里有什么问题,我确信这很简单,但要搜索它并不容易,所以如果已经在其他地方得到回答,我会道歉。

情况:

我在js文件上声明了一个全局数组:

var question_ids = [];

数组得到一些值:

$(".quiz-game-container .row").each(function(loop_index) {
    question_ids.push($(this).attr('id'));
}

现在我想显示一个具有数组长度的计数器:

$(document).ready(function() {
    // Sets the question info how many questions in total
    console.log(question_ids.length);
    $(".quiz-game-container .quiz-container .current-question-number").html("1/", question_ids.length);
});

问题

奇怪的是,我在浏览器开发者控制台中看到正确的console.log输出(长度为10),但它在1秒后消失(可能已经加载了所有内容)并且没有值,我在html视图中获取1/

这是一个消失的console.log的实例。 my website

点击刷新按钮F5并查看控制台,console.log输出将显示一小段时间然后消失。

修改

  

点击刷新按钮F5并查看控制台,console.log输出将显示一小段时间然后消失。

这似乎是一个浏览器问题。它在FireFox上运行良好。

3 个答案:

答案 0 :(得分:3)

$ .html只接受一个参数:http://api.jquery.com/html/

改变这个:

.html("1/", question_ids.length);

对此:

.html("1/" + question_ids.length);

答案 1 :(得分:1)

替换此部分

raw_input

.html("1/", question_ids.length)

答案 2 :(得分:1)

替换("1/", question_ids.length) 有: ("1/" + question_ids.length)。 您想要连接两个变量,而不是为.html()函数分配两个值。