Javascript 文本未随机刷新的问题
我最近添加了一个掷骰子按钮,但由于我添加了这个按钮,我注意到我的文本在一次又一次刷新后不会随机显示,它只是在你第一次掷骰子时随机选择的,直到你再次完全重置整个页面,它才会刷新 我试图将所有内容都更改回原来的位置,包括滚动骰子按钮,但在代码的某个地方,我相信我出了问题,这就是为什么文本不再随机刷新,即使视频在一次又一次刷新后随机播放Javascript 文本未随机刷新的问题,javascript,html,css,Javascript,Html,Css,我最近添加了一个掷骰子按钮,但由于我添加了这个按钮,我注意到我的文本在一次又一次刷新后不会随机显示,它只是在你第一次掷骰子时随机选择的,直到你再次完全重置整个页面,它才会刷新 我试图将所有内容都更改回原来的位置,包括滚动骰子按钮,但在代码的某个地方,我相信我出了问题,这就是为什么文本不再随机刷新,即使视频在一次又一次刷新后随机播放 var r_text=新数组(); r_text[0]=“所有的叶子都是棕色的”; r_text[1]=“fafwfaf”; r_text[2]=“fakfjwk
var r_text=新数组();
r_text[0]=“所有的叶子都是棕色的”;
r_text[1]=“fafwfaf”;
r_text[2]=“fakfjwkfkjawkfawjf”;
r_text[3]=“玉米片”;
r_text[4]=“班纳纳”;
r_text[5]=“楔块”;
r_text[6]=“lol”;
var i=Math.floor(6*Math.random())
var视频=[{
id:1,
url:“https://www.youtube.com/embed/ngUMyF9D9SQ?autoplay=1",
正文:r_text[i]
},
{
id:2,
url:“https://www.youtube.com/embed/r-l_gVPVylM?autoplay=1",
正文:r_text[i]
},
{
id:3,
url:“https://www.youtube.com/embed/6ukTzRjXcR0?autoplay=1",
正文:r_text[i]
},
{
id:4,
url:“https://www.youtube.com/embed/n5BXMNCTu8I?autoplay=1",
正文:r_text[i]
},
{
id:5,
url:“https://www.youtube.com/embed/JtwVmnMNaEY?autoplay=1",
正文:r_text[i]
},
{
id:6,
url:“https://www.youtube.com/embed/lAMgRaHP8Q4?autoplay=1",
正文:r_text[i]
}
];
window.onload=函数(){
函数rollVideo(numberRand){
let playerDiv=document.getElementById(“随机播放器”);
if(document.querySelector(“iframe”)!==null){
document.querySelector(“iframe”).remove();
}
让player=document.createElement(“IFRAME”);
让randomVideoUrl=videos[numberRand].url;
player.setAttribute(“宽度”、“640”);
player.setAttribute(“高度”、“390”);
setAttribute(“src”,randomVideoUrl);
playerDiv.appendChild(玩家);
document.getElementById(“r_text”).innerHTML=“”;
document.getElementById(“r_text”).innerHTML=videos[numberRand].text;
}
document.getElementById(“btn roll”)。addEventListener(“单击”,startRoll);
函数startRoll(){
让currentNumber=Math.floor(Math.random()*videos.length);
滚动视频(当前编号);
}
};
卷
这是因为您从一开始就将i
初始化为一个介于0
和5
之间的随机数,videos
对象包含每个索引的text
的相同值,即r\u text[i]
因此,如果您想为随机视频打印随机文本,只需替换此选项即可
document.getElementById("r_text").innerHTML = videos[numberRand].text;
用这个
document.getElementById("r_text").innerHTML = r_text[Math.floor(6*Math.random())];
或者,如果特定文本是用索引固定的,那么,简单地说,text:r\u text[0]
,text:r\u text[1]
,。。。等等,在视频
对象中。错误是
正文:r_text[i]
一个解决方案是为constante索引视频更改i。您可以这样解决:
document.getElementById(“r_text”).innerHTML=r_text[Math.floor(6*Math.random())]
我应该在哪里添加它?替换这个document.getElementById(“r_text”).innerHTML=videos[numberRand].text代码>@GrafiCode,这将生成与提供给函数的数字不同的另一个随机数。document.getElementById(“r_text”)。innerHTML=videos[numberRand]。text;如果我们使用document.getElementById(“r_text”).innerHTML=r_text[Math.floor(6*Math.random())],那么应该使用document.getElementById(“r_text”).innerHTML=r_text[Math.floor(6*Math.random())]
然后这将创建新的随机值,该值不等于numberRand
,因此文本和视频的映射将不匹配。我们可以使用document.getElementById(“r_text”).innerHTML=r_text[numberRand]代码>而不是创建新的随机值。@MohitPrakash这就是他想要的,随机视频的随机文本。无需将其与numberRand
匹配。最后,给出一个清晰的解释