[英]Am I doing something wrong here?
如果我的問題非常模糊,我很抱歉,因為我對編碼和提出編碼問題非常非常陌生,但我希望有人理解我的問題,因為這非常令人沮喪,因為沒有出現錯誤消息但我不知道我做錯了什么。
因此,對於上下文,我有一個數組編號洗牌器。
let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
function shuffle(o) {
for (let j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x);
return o;
};
let random = shuffle(numbers);
我試圖制作一個不重復的隨機數生成器,我將使用這些數字生成與該數字相關的隨機圖像。 所以我將第一張圖片設置為隨機的第一個索引
let setImgUrl = "img" + random[0] + ".jpg";
現在我想制作一個按鈕,將其轉換為 random[1] 作為切換到下一個隨機圖像的一種方式。
let calcNewImg;
if (random[0]) {
calcNewImg = random[1]
} else if (random[1]) {
calcNewImg = random[2]
}
它會一直重復到 random[9] (這是最后一個索引)並且圖像看起來像這樣
Img.setAttribute("src", "img/img" + calcNewImg + ".jpg");
當我單擊按鈕切換到下一個圖像時,它工作一次,並且在任何其他時間都不起作用,沒有錯誤消息。 希望我提供了足夠的信息,有人可以理解,如果需要,請隨時詢問更多信息。 我真的很感激這個幫助。
我認為你需要的是一個無限循環來生成像這樣的圖像 ID
button=document.getElementById("button") showimg=document.getElementById("showimg") button.addEventListener("click",getimg) let numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; function shuffle(o) { for(let j, x, i = o.length; i; j = parseInt(Math.random() * i), x = o[--i], o[i] = o[j], o[j] = x); return o; }; let random = shuffle(numbers); var i=0 function getimg(){ calcNewImg = random[i] i++ if(i>=random.length){ i=0 } showimg.textContent= "img/img" + calcNewImg + ".jpg" }
<,DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width. initial-scale=1.0"> <title>Document</title> </head> <body> <div id="showimg">###</div> <br> <button id="button">generate</button> </body> </html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.