从数组中随机选择一个项

3

我正在为我的两个女儿制作一个游戏。它会随机选择一个形容词和一个名词,然后展示给她们来表演。

我能够将随机单词打印到控制台上,但现在我需要它们出现在HTML页面中。

Array.prototype.sample = function(){
  return this[Math.floor(Math.random()*this.length)];
}


var randomAdj = (["happy", "sad", "bouncy", "silly"].sample());
var randNoun = (["monkey", "butterfly", "puppy"].sample());

document.getElementById(#adj).textContent = randomAdj;
document.getElementById(#noun).textContent = randomNoun;

最后两行对我没有起作用(#adj#noun是HTML中使用的span id)。

我只学了几周,所以可能会错过一些非常明显的东西。

2个回答

4

随机部分应该可以工作(请记住修改原型不是一个好习惯),但你有两个语法错误:

document.getElementById(#adj).textContent = randomAdj;
document.getElementById(#noun).textContent = randomNoun;

"adj""noun" 作为字符串传递:

document.getElementById("adj").textContent = randomAdj;
document.getElementById("noun").textContent = randomNoun;

在调用getElementById时,您不需要使用#代码片段。 此外请注意,您正在使用randomNoun,但您声明了randNoun。以下是可工作的代码和示例:

function randomItem(arr){
  return arr[Math.floor(Math.random()*arr.length)];
}


var randomAdj = randomItem(["happy", "sad", "bouncy", "silly"]);
var randomNoun = randomItem(["monkey", "butterfly", "puppy"]);

document.getElementById("adj").textContent = randomAdj;
document.getElementById("noun").textContent = randomNoun;
<span id="adj"></span>
<span id="noun"></span>


谢谢!我想这只是一些小问题和愚蠢错误。 - kristijoy81
@kristijoy81 不用客气!别忘了在我的答案左侧(投票部分下方)使用“✔”按钮来确认答案。希望你的女儿们玩得开心。 :) - Ionică Bizău

0

错误的

document.getElementById(#adj).textContent = randomAdj;
document.getElementById(#noun).textContent = randomNoun;

使用

document.getElementById("adj").innerHTML = randomAdj;
document.getElementById("noun").innerHTML = randomNoun;

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接