Javascript 从阵列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

我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能? 我想输出2个不同的随机数组对象。 这就是我目前得到的。但它只显示1个输出,而不是2个输出。这怎么可能


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把它加到你的答案上,在它应该的地方。因为另一个回答者现在得到了它,并且是第一个回答的人,我建议你把我的改为向上投票,接受另一个回答者?因为另一个回答者现在得到了它,第一个回答的是,我建议你把我的改为向上投票,接受另一个?