显示来自 for 循环的数组内容
Posted
技术标签:
【中文标题】显示来自 for 循环的数组内容【英文标题】:Display array content from a for-loop 【发布时间】:2017-03-26 14:08:14 【问题描述】:我正在尝试显示 randomTable 中的一个数字,持续 8 秒,1by1。可悲的是它根本没有显示任何东西。
var numberTable = [];
var randomTable = [];
$('#pooling').append('<div id="box"> </div>');
for (var i=1;i<=32;i++)
numberTable.push(i);
for (var i=0;i<8;i++)
(function (e)
randomTable.push(1 + Math.floor(Math.random() * (32 - e)));
numberTable.splice(e,1);
$('#box').replaceWith('<div id = "box>' + randomTable[e] + '</div>');
$('#box').show(0).delay(8000).hide(0);
)(i);
当我删除第二个 for 循环时,它会显示空的#box,但是使用这个循环它根本不会创建这个 div。可能是什么问题?
【问题讨论】:
【参考方案1】:目前尚不清楚您的意图是什么,但也许这会有所帮助:
var numberTable = [];
var randomTable = [];
for (var i = 1; i <= 32; i++)
numberTable.push(i);
for (var i = 0; i < 8; i++)
randomTable.push(1 + Math.floor(Math.random() * (32 - i)));
numberTable.splice(i, 1);
console.log("randomTable: " + randomTable);
$('#box').text(randomTable[0]);
var x = 1;
function repeat()
window.setTimeout(function()
if (x < 8)
$('#box').text(randomTable[x]);
x++;
repeat();
,8000);
;
repeat();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="box"></p>
【讨论】:
看起来不错,但我的观点是我想将它作为 html 元素运行。这里我们使用控制台。 @ClassicError 我的代码示例仅将创建的随机数组记录到控制台。号码本身附加到$('#box')
。您只需根据自己的需要进行调整。我的意思只是展示如何每 8 秒从随机数组中获取下一个值。【参考方案2】:
首先 - replaceWith
调用中缺少一个 "
。
第二 - 使用这种方法,您应该始终只得到一个 div (id=box),因为您在每次迭代中使用 replaceWith
覆盖它 - 您可以像这样使用附加和后缀 id:
$('#box').append('<div id="box-' + e '">' + randomTable[e] + '</div>')
或完全保留id
并改用一个类 - 正如名称所暗示的那样 - 文档中应该只有一个具有相同 id 的元素。
提供您的 html 标记愿望,如果这不适合。
【讨论】:
感谢您的回答!还是行不通。我将 ID="box" 更改为 class= "box" - 第一个数字显示 8 秒并隐藏。此后没有任何事情发生(检查员:21)。当我用新的 ID 元素替换旧的 ID 元素时,类和 ID 之间真的有区别吗?仍然是 ID 的一个元素。以上是关于显示来自 for 循环的数组内容的主要内容,如果未能解决你的问题,请参考以下文章