我试图随机选择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>';
}
?>
答案 0 :(得分:0)
不需要任何奇怪的sort
函数来从jQuery集合中获取随机元素。这是使用eq
进行此操作的唯一方法。
var $widgets = $('.widget');
var length = $widgets.length;
var div = $widgets.eq(Math.floor(Math.random() * length));
div.show();
&#13;
.widget {
display: none;
}
&#13;
<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>
&#13;