我有 8 个 html 页面,我需要这样做,以便在#okBtn这些页面中的任何一个上按下按钮时,调用一个随机选择下一页的脚本。
我这样做:
1)有一个数组testTotal,初始等于[1,2,3,4,5,6,7,8],以json格式输入localStorage。
2)按下按钮后,我从localStorage接收到的反序列化数组中选择一个随机元素。
3)选择后,我从数组中删除这个元素并将结果数组保存回localStorage
4) 我翻了一个随机收到的页面。
5)从头再来
但有时元素根本没有被删除,有时错误的元素被删除了。
//Получаем массив из local storage
var testTotal = JSON.parse(window.localStorage.getItem("TestComplite"));
$('#okBtn').click(function(){
//Выбор случайного элемента из массива
var rand = Math.floor(Math.random() * testTotal.length);
//Поиск выбранного элемента для удаления
for (var i = 0; i < testTotal.length; i++) {
if (testTotal[i] == testTotal[rand]) {
testTotal.splice(testTotal[i], 1);
//После удаления, сохраняем измененный массив
window.localStorage.setItem("TestComplite", JSON.stringify(testTotal));
//Переходим на случайно выбранную страницу
window.location.replace("t" + rand + ".html");
}
}
});
该方法
splice()从数组中删除/更改一个元素,并包含一个已删除元素的数组作为返回值。如果删除了一个元素,则将返回一个包含一个元素的数组。示例控制台内容:
不带循环的选项:
转到 page 后
end.html,您需要记住该数组是localStorage空的。