我正在尝试从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。可能是什么问题?
答案 0 :(得分: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>
答案 1 :(得分:0)
首先 - "
来电中缺少replaceWith
。
第二 - 使用这种方法,你总是应该只使用一个div(id = box),因为你在每次迭代中使用replaceWith
覆盖它 - 你可以使用append和后缀id这样:
$('#box').append('<div id="box-' + e '">' + randomTable[e] + '</div>')
或完全保留id
并使用类 - 如名称所暗示的那样 - 文档中应该只有一个具有相同ID的元素。
提供你的html标记愿望,如果这个愿望不适合。