随机化并在页面加载时显示给定数量的 if 元素
Randomize and show a given number if elements on pageload
我想在页面加载时随机化元素 - 无论有多少元素,只显示其中的 4 个。
我最接近的是:
$(document).ready(function() {
$(".itembox.newcenterbox").hide();
var elements = $(".itembox.newcenterbox");
var elementCount = elements.size();
var elementsToShow = 4;
var alreadyChoosen = ",";
var i = 0;
while (i < elementsToShow) {
var rand = Math.floor(Math.random() * elementCount);
if (alreadyChoosen.indexOf("," + rand + ",") < 0) {
alreadyChoosen += rand + ",";
elements.eq(rand).show();
++i;
}
}
});
它在我的本地网站上对我有用 - 但它破坏了我的实时网站,我不知道为什么。
有没有更好的方法可以做到这一点?
也许你的elementCount
小于elementsToShow
?在这种情况下,您将始终获得 0 到 3 之间的rand
值,这将导致无限循环。
请尝试下面的代码。此外,当您检查rand
索引时,我删除了不必要的循环迭代。
$(document).ready(function() {
var elements = $(".itembox.newcenterbox");
var elementsToShow = 4;
var i = 0;
if(elements.length < elementsToShow) return;
for (i = 0; i < elementsToShow; i++) {
elements.splice(Math.floor(Math.random() * elements.length), 1);
}
elements.hide();
});
相关文章:
- KnockoutJS:为虚拟元素使用嵌套的条件if语句
- 在 ng-if 编译后访问指令中的 DOM 元素
- 普通JS:使80%宽度元素100%IF包含一个图像
- AngularJS ng-if指令在移除元素之前,即使条件为false,也会短暂呈现
- 执行 If 语句,仅当元素存在时
- 我需要在javascript if语句中使用jquery来动画元素的颜色
- if数组元素在for循环内部有条件
- 从指令中向元素添加ng-if属性
- javascript(prototype)if元素并没有属性
- ng-if中的html元素在加载页面时出现
- 如何在 if 语句中引用元素
- 嵌套在选择元素中的 ng 重复和 ng-if
- 隐藏元素取决于 if/else 语句的值不起作用
- 随机化并在页面加载时显示给定数量的 if 元素
- If-Statement中的Javascript元素验证
- ng-if 在 ng 重复在点击事件中重新创建元素
- 在 JS 中使用 if else 语句来检查 HTML 表单元素是否等于某个数字
- 在 ng-if 内设置监视元素
- 元素if之后的jquery文本
- 添加和删除元素 IF 类具有 x 样式.无法正常工作