0

我希望我的 div 元素像计时器一样工作,并以 1 秒的间隔显示随机数。http://jsfiddle.net/NHAvS/46/。那是我的代码:

var arrData = [];
for (i=0;i<1000;i++)
{
      arrData.push({"bandwidth":Math.floor(Math.random() * 100)});
}

var div = document.getElementById('wrapper').innerHTML =arrData;
document.getElementById('wrapper').style.left = '200px';
document.getElementById('wrapper').style.top = '100px';

但问题是它一次只显示 1 个数据。知道如何解决吗?

谢谢

4

3 回答 3

2

做这个:

setInterval(myfun,1000);

var div = document.getElementById('wrapper');
function myfun(){
   div.innerHTML ='bandwidth :'+Math.floor(Math.random() * 100);
}

看看:http: //jsfiddle.net/techsin/NHAvS/49/

注意:您的示例被搞砸了,因为在左侧它被设置为在头部加载,这意味着每次您的脚本在您的 dom 之前加载时您的 div 都将是未定义的。因此将其设置为 onload 使其工作得更多。:D

注意:您似乎也像在 jquery 中那样链接函数,但在 javascript 中您不会这样做。这些功能就是为了做到这一点。即div= ..getElementById..innerHtml='balbla';设置 div = bla ... 不是元素。

于 2013-08-26T18:25:41.957 回答
0

你最好使用 jQuery 和 CSS 来实现你想要的结果。jQuery 查找元素并显示随机数;和 CSS 而不是手动设置位置。(显然 jQuery 只是个人选择,document.getElementById就足够了 - 但如果您计划大量操作 DOM,jQuery 可能是更好的选择)。查看更新的小提琴

$(function () {
    var arrData = [];
    for (i = 0; i < 1000; i++) {
        arrData.push({
            "bandwidth": Math.floor(Math.random() * 100)
        });
    }

    var index = 0;

    setInterval(function(){
        $("#wrapper").text(arrData[index].bandwidth);
        index++;
    }, 1000);    
});
于 2013-08-26T18:37:04.550 回答
0

你可以这样做:

var delay = 1000, // 1000 ms = 1 sec
    i;
setTimeout(function() {
  document.getElementById('wrapper').innerHTML = arrData[i];
  i++;
}, delay);
于 2013-08-26T18:24:28.840 回答