我正试图编写一个简单的Javascript(jQuery)函数,它可以随机显示6个Divs出11个可能的代码。约有一半的Divs,但它在4和8之间。不一致的Javascript行为(嵌套在while循环中的IF语句)
有谁能告诉我我哪里出错了吗?看来它应该是如此简单,但我完全失去了!
我的代码:
<div class="offer">Offer 1</div>
<div class="offer">Offer 2</div>
... snip
<div class="offer">Offer 11</div>
<script src="query.min.js" type="text/javascript"></script>
<script>
var changed = 0;
while (changed < 6) {
$('.offer').each(function(index) {
if (changed < 6) {
var showOrNot = Math.floor(Math.random() * 2);
if (showOrNot == 1) {
$(this).addClass('offershow');
changed += 1;
$(this).text(changed); //debugging looking for the current value of changed
}
}
})
}
</script>
当我测试它时工作得很好 - http://jsfiddle.net/infernalbadger/LX5xC/它偶尔会少于6次,因为没有检查以确保它不会更改同一个div两次。 – 2011-06-06 15:54:40
你为什么要首先输出div,这不应该是一个serverside/db的工作吗? – Val 2011-06-06 15:55:47
啊,*这*是我没有考虑过的。谢谢!想想卢克可能是对的,但是更准确的解决方案可能会更好。 – 2011-06-06 15:57:06