我目前在学习Javascript,我想创建自己的Lorem Ipsum生成器。从列表中选择随机段落
基本上,我将有段落的列表(在JavaScript中,或在HTML文档?)。
当用户按下生成按钮,它会接着输出从列表中3个随机段落。
我环顾四周,在这里,但真的不能找到任何帮助。
感谢
我目前在学习Javascript,我想创建自己的Lorem Ipsum生成器。从列表中选择随机段落
基本上,我将有段落的列表(在JavaScript中,或在HTML文档?)。
当用户按下生成按钮,它会接着输出从列表中3个随机段落。
我环顾四周,在这里,但真的不能找到任何帮助。
感谢
你可以简单地有一个JavaScript数组,并选择一个随机指数和注入的那款到DOM元素。我还更新了代码,不要按照您的评论重复以前的随机整数。
实施例(代码未测试)
//global to store previous random int
_oldInt = null;
var paragraphArray = ["Lorem ipsum delor...", "The great white...", "Chitty-chitty-bang-bang..."];
//update element content (e.g. `<div>` with paragraph)
document.getElementById("MyID").innerHTML = pickRandom(paragraphArray);
var pickRandom = function(paragraphArray){
//random index of paragraphArray
var randomInt = Math.floor(Math.random()*paragraphArray.length);
//ensure random integer isn't the same as last
if(randomInt == _oldInt)
pickRandom(paragraphArray);
else{
_oldInt = randomInt;
return paragraphArray[randomInt];
}
}
非常好,非常感谢!但是,显然,您在innerHTML和(randomParagraph)之间错过了等号。一旦我补充说,它的工作。感谢您在正确的方向推动:) – tristanojbacon
非常欢迎您。我已经编辑这个帖子w /你的输入thx。 – pixelbobby
关于你的编辑 - 脚本无论前面提到的randomParagraph是否有括号都适用。这是正常的吗? – tristanojbacon
可以使用Math.random
到从列表中产生一个随机指数:
var paragraphs = [...]; # This is your list of paragraphs
function get_random_paragraph() {
var index = Math.floor(paragraphs.length * Math.random());
return paragraphs[index];
};
表达Math.floor(MAX_VALUE * Math.random())
产生一个随机整数x
,其中0 <= x < MAX_VALUE
。
你需要一些paragraphs
(在这里,一个JavaScript阵列),result
盒(在这里,一个<div>
)和button
(这里是... <button>
)。
当您单击button
时,您想要将paragraphs
添加到result
中。
var paragraphs = ['Lorem', 'ipsum', 'dolor', 'sit', 'amet'],
nbParagraphs = paragraphs.length
paragraph = null,
result = document.getElementById('result'),
button = document.getElementsByTagName('button')[0];
button.addEventListener('click', function() {
/*
* Math.random() return a number between 0 and 1
* parseInt() return an integer (the 10 is here to say that we are in decimal)
* parseInt(Math.random() * nbParagraphs, 10) return a number between 0 and the number of paragraphs, so we can use it to select a paragraph in the paragraphs array
*/
paragraph = paragraphs[parseInt(Math.floor(Math.random() * nbParagraphs, 10))]
result.innerHTML += '<p>' + paragraph + '</p>'
})
您是否试过在Google上环顾四周? – jeschafe
你有任何代码吗? [你有什么尝试?](http://whathaveyoutried.com) – sczizzo
我曾经在伟大的谷歌环顾四周,但我设法提出的一个简单的打印声明,当我点击按钮(部分W3C教程) – tristanojbacon