我正在尝试随机选择 div 。我的代码中唯一的问题是它有时会随机选择一个空 div。我不明白为什么它有时会回显一个空的 div。我已经使用 chrome 检查元素来检查,没有空的 div。我在 foreach 循环上做错了什么。
var divs = $(".widget").get().sort(function(){
return Math.round(Math.random())-0.5; //so we get the right +/- combo
}).slice(0,1);
$(divs).show();
.widget{
display:none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<?php
foreach ($widgets as $widget){
echo'<div class="widget" >';
echo $content;
echo'</div>';
}
?>
最佳答案
不需要任何奇怪的 sort
函数来从 jQuery 集合中获取随机元素。这是使用 eq
实现此目的的一种方法。
var $widgets = $('.widget');
var length = $widgets.length;
var div = $widgets.eq(Math.floor(Math.random() * length));
div.show();
.widget {
display: none;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="widget">1</div>
<div class="widget">2</div>
<div class="widget">3</div>
<div class="widget">4</div>
<div class="widget">5</div>
<div class="widget">6</div>
<div class="widget">7</div>
关于javascript - 尝试随机选择 div,但有时会回显空 div?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33291654/