Javascript 从阵列1输出而不是2输出的随机输出
我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能? 我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能Javascript 从阵列1输出而不是2输出的随机输出,javascript,Javascript,我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能? 我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能 var myArray=[ “苹果”, “香蕉”, “梨” ]; var randomItem1=myArray[Math.floor(Math.random()*myArray.length)]; var randomItem2=myArray[Math.floor(Math.rando
var myArray=[
“苹果”,
“香蕉”,
“梨”
];
var randomItem1=myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2=myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById(“randomItem1”).innerHTML=randomItem1;
document.getElementById(“randomItem2”).innerHTML=randomItem2;
您的代码几乎正确,唯一的问题是您正在覆盖文档正文,而不是两个不同的div
您也在html之前执行javascript,因此它会搜索未加载的元素。将javascript放在html之后解决了这个问题
这样做:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id = "randomItem1"> </div>
<div id = "randomItem2"> </div>
</body>
<script>
var myArray = [
"Apples",
"Bananas",
"Pears"
];
var randomItem1 = myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2 = myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById("randomItem1").innerHTML=randomItem1;
document.getElementById("randomItem2").innerHTML=randomItem2;
</script>
</html>
var myArray=[
“苹果”,
“香蕉”,
“梨”
];
var randomItem1=myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2=myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById(“randomItem1”).innerHTML=randomItem1;
document.getElementById(“randomItem2”).innerHTML=randomItem2;
对于测试,您可以在行之间添加
console.log(randomItem1)
和console.log(randomItem2)
。您的代码几乎正确,唯一的问题是您正在覆盖文档正文,而不是两个不同的div
您也在html之前执行javascript,因此它会搜索未加载的元素。将javascript放在html之后解决了这个问题
这样做:
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id = "randomItem1"> </div>
<div id = "randomItem2"> </div>
</body>
<script>
var myArray = [
"Apples",
"Bananas",
"Pears"
];
var randomItem1 = myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2 = myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById("randomItem1").innerHTML=randomItem1;
document.getElementById("randomItem2").innerHTML=randomItem2;
</script>
</html>
var myArray=[
“苹果”,
“香蕉”,
“梨”
];
var randomItem1=myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2=myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById(“randomItem1”).innerHTML=randomItem1;
document.getElementById(“randomItem2”).innerHTML=randomItem2;
对于测试,您可以在两行之间添加
console.log(randomItem1)
和console.log(randomItem2)
。有两种情况是一种,但有一种是错误的:
document.body.innerHTML=randomItem1代码>将覆盖现有元素
document.getElementById(“randomItem1”).innerHTML=randomItem1代码>,
块需要放在元素之后,否则在DOM中找不到未解析和加载的元素
var myArray=[
“苹果”,
“香蕉”,
“梨”
];
var randomItem1=myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2=myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById(“randomItem1”).innerHTML=randomItem1;
document.getElementById(“randomItem2”).innerHTML=randomItem2;
有两件事会出错,一件是错的:
document.body.innerHTML=randomItem1代码>将覆盖现有元素
document.getElementById(“randomItem1”).innerHTML=randomItem1代码>,
块需要放在元素之后,否则在DOM中找不到未解析和加载的元素
var myArray=[
“苹果”,
“香蕉”,
“梨”
];
var randomItem1=myArray[Math.floor(Math.random()*myArray.length)];
var randomItem2=myArray[Math.floor(Math.random()*myArray.length)];
document.getElementById(“randomItem1”).innerHTML=randomItem1;
document.getElementById(“randomItem2”).innerHTML=randomItem2;
感谢您的回复,我收到了未捕获的错误TypeError:无法将属性“innerHTML”设置为null。这很奇怪,我现在尝试了它,它可以工作,您确定您没有用ID输入错误。我编辑了我的问题片段,您也可以在其中看到错误。好的,修复了它。总是把你的答案放在最后。因此,要么作为和之前的最后一个块,要么在和之间。脚本应在加载html后执行,以便document.getElementById能够实际找到元素:D@atayenel将它添加到您的答案中,它所属的位置。感谢您的回复,我得到了这个错误未捕获的TypeError:无法将属性“innerHTML”设置为null。这很奇怪,我现在尝试了,它可以工作,你确定你没有用ID打字吗?我已经编辑了我的问题片段,你也可以看到其中的错误好的,修复了它。总是把你的答案放在最后。因此,要么作为和之前的最后一个块,要么在和之间。脚本应在加载html后执行,以便document.getElementById能够实际找到元素:D@atayenel把它加到你的答案上,在它应该的地方。因为另一个回答者现在得到了它,并且是第一个回答的人,我建议你把我的改为向上投票,接受另一个回答者?因为另一个回答者现在得到了它,第一个回答的是,我建议你把我的改为向上投票,接受另一个?