【发布时间】:2021-01-05 10:55:55
【问题描述】:
我想知道是否有人可以提供帮助,我什至不确定这是否完全有可能,但希望可以。
只是为了解释我想要实现的目标 - 我正在寻找一个简单的 HTML 页面,用户单击“生成”按钮并从文本文件中检索随机选择的行 - 随机排列和随机数每次单击按钮时都会显示一行。
为了更好的解释 - 我正在构建一个带有演员和角色名称的 Credits 生成器。每次按下“生成”时,它都必须是唯一的。
这是我作为起点的东西,但问题是它每次只返回一个条目,但我正在努力实现这一目标。
index.html
<head>
<meta charset="utf-8" />
<title>Cast List Generator</title>
<link rel="stylesheet" href="style.css" />
<script data-require="jquery" data-semver="2.1.1" src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="script.js"></script>
</head>
<body>
<h1>Cast List Generator</h1>
<button id="showLine">Generate</button>
<p id="list"></p>
</body>
</html>
script.js
var lines;
var randomNumber;
var lastRandomNumber;
$(document.body).ready(function () {
// load the trivia from the server
$.ajax({
url: 'list.txt'
}).done(function(content) {
// normalize the line breaks, then split into lines
lines = content.replace(/\r\n|\r/g, '\n').trim().split('\n');
// only set up the click handler if there were lines found
if (lines && lines.length) {
$('#showLine').on('click', function () {
// loop to prevent repeating the last random number
while (randomNumber === lastRandomNumber) {
randomNumber = parseInt(Math.random() * lines.length);
// check to prevent infinite loop
if (lines.length === 1) { break; }
}
// keep track of the last random number
lastRandomNumber = randomNumber;
// show the corresponding line
$('#list').text(lines[randomNumber]);
});
}
});
});
list.txt(将达到 100+)
Actor1 as Character 1
Actor2 as Character 2
Actor3 as Character 3
Actor4 as Character 4
Actor5 as Character 5
Actor6 as Character 6
Actor7 as Character 7
Actor8 as Character 8
Actor9 as Character 9
Actor10 as Character 10
Actor11 as Character 11
将不胜感激任何提示:)
【问题讨论】:
-
您成功返回了一个随机文本行。但是您想返回几个(其中几个是随机数),那么为什么不创建另一个随机数作为要返回的行数,并循环获取下一个随机行 - 当然您需要记住您的行数已经有这个时间了,每次都不会显示超过一次。
标签: javascript html