Javascript 选择随机图像
我一直在尝试获取一个随机图像,以便在加载时显示。这是我正在使用的代码:Javascript 选择随机图像,javascript,html,Javascript,Html,我一直在尝试获取一个随机图像,以便在加载时显示。这是我正在使用的代码: <head> <script type="text/javascript"> ImageArray = new Array(); image[0] = 'goat1.jpg'; image[1] = 'kitchen4.jpg'; image[2] = 'pig1.jpg'; image[3] = 'site1.jpg'; image[4] =
<head>
<script type="text/javascript">
ImageArray = new Array();
image[0] = 'goat1.jpg';
image[1] = 'kitchen4.jpg';
image[2] = 'pig1.jpg';
image[3] = 'site1.jpg';
image[4] = 'site2.jpg';
image[5] = 'site3.jpg';
image[6] = 'site4.jpg';
image[7] = 'site5.jpg';
image[8] = 'site6.jpg';
image[9] = 'site7.jpg';
image[10] = 'site8.jpg';
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = ImageArray[num];
document.getElementById("randImage").textContent = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
</script>
</head>
<body onload="getRandomImage()">
<div id="randImage"></div>
</body>
ImageArray=新数组();
图像[0]=“goat1.jpg”;
图片[1]=“kitchen4.jpg”;
图像[2]=“pig1.jpg”;
图像[3]=“site1.jpg”;
图片[4]=“site2.jpg”;
图片[5]=“site3.jpg”;
图片[6]=“site4.jpg”;
图片[7]=“site5.jpg”;
图片[8]=“site6.jpg”;
图片[9]=“site7.jpg”;
图像[10]=“site8.jpg”;
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=ImageArray[num];
document.getElementById(“randImage”).textContent=(“”)
}
我是javascript新手,我是从网上找到的代码片段拼凑而成的
此代码的问题在于它显示的是
,而不是图像。ImageArray
没有项目,因此获取它的任何索引都将返回未定义。我认为您正在尝试设置ImageArray
的值,但意外地将image
放入。其次,你不需要textContent
,你需要innerHTML
。这可能就是您想要的代码:
<head>
<script type="text/javascript">
ImageArray = new Array();
ImageArray[0] = 'goat1.jpg';
ImageArray[1] = 'kitchen4.jpg';
ImageArray[2] = 'pig1.jpg';
ImageArray[3] = 'site1.jpg';
ImageArray[4] = 'site2.jpg';
ImageArray[5] = 'site3.jpg';
ImageArray[6] = 'site4.jpg';
ImageArray[7] = 'site5.jpg';
ImageArray[8] = 'site6.jpg';
ImageArray[9] = 'site7.jpg';
ImageArray[10] = 'site8.jpg';
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = ImageArray[num];
document.getElementById("randImage").innerHTML = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
</script>
</head>
<body onload="getRandomImage()">
<div id="randImage"></div>
</body>
ImageArray=新数组();
ImageArray[0]=“goat1.jpg”;
ImageArray[1]=“kitchen4.jpg”;
ImageArray[2]=“pig1.jpg”;
ImageArray[3]=“site1.jpg”;
ImageArray[4]=“site2.jpg”;
ImageArray[5]=“site3.jpg”;
ImageArray[6]=“site4.jpg”;
ImageArray[7]=“site5.jpg”;
ImageArray[8]=“site6.jpg”;
ImageArray[9]=“site7.jpg”;
ImageArray[10]=“site8.jpg”;
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=ImageArray[num];
document.getElementById(“randImage”).innerHTML=(“”)
}
问题在于您没有分配数组ImageArray
的值,而是分配数组image
。您可以通过将图像数组重命名为image
,或者通过其他方式来更改此设置。因此:
<script type="text/javascript">
var image = new Array();
image[0] = 'goat1.jpg';
image[1] = 'kitchen4.jpg';
image[2] = 'pig1.jpg';
image[3] = 'site1.jpg';
image[4] = 'site2.jpg';
image[5] = 'site3.jpg';
image[6] = 'site4.jpg';
image[7] = 'site5.jpg';
image[8] = 'site6.jpg';
image[9] = 'site7.jpg';
image[10] = 'site8.jpg';
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = image[num];
document.getElementById("randImage").textContent = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
</script>
var image=新数组();
图像[0]=“goat1.jpg”;
图片[1]=“kitchen4.jpg”;
图像[2]=“pig1.jpg”;
图像[3]=“site1.jpg”;
图片[4]=“site2.jpg”;
图片[5]=“site3.jpg”;
图片[6]=“site4.jpg”;
图片[7]=“site5.jpg”;
图片[8]=“site6.jpg”;
图片[9]=“site7.jpg”;
图像[10]=“site8.jpg”;
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=图像[num];
document.getElementById(“randImage”).textContent=(“”)
}
或:
var ImageArray=新数组();
ImageArray[0]=“goat1.jpg”;
ImageArray[1]=“kitchen4.jpg”;
ImageArray[2]=“pig1.jpg”;
ImageArray[3]=“site1.jpg”;
ImageArray[4]=“site2.jpg”;
ImageArray[5]=“site3.jpg”;
ImageArray[6]=“site4.jpg”;
ImageArray[7]=“site5.jpg”;
ImageArray[8]=“site6.jpg”;
ImageArray[9]=“site7.jpg”;
ImageArray[10]=“site8.jpg”;
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=ImageArray[num];
document.getElementById(“randImage”).textContent=(“”)
}
存储图像名称的变量的名称需要在整个脚本中保持一致。您应该定义
image
数组,但是ImageArray
,您也可以这样减少代码
<head>
<script type="text/javascript">
var image = ['goat1.jpg', 'kitchen4.jpg', 'pig1.jpg',
'site1.jpg', 'site2.jpg', 'site3.jpg', 'site4.jpg', 'site5.jpg',
'site6.jpg', 'site7.jpg', 'site8.jpg'];
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = image[num];
document.getElementById("randImage").textContent = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
</script>
</head>
<body onload="getRandomImage()">
<div id="randImage"></div>
</body>
var image=['goat1.jpg'、'kitchen4.jpg'、'pig1.jpg',
“site1.jpg”、“site2.jpg”、“site3.jpg”、“site4.jpg”、“site5.jpg”,
'site6.jpg'、'site7.jpg'、'site8.jpg'];
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=图像[num];
document.getElementById(“randImage”).textContent=(“”)
}
您没有传递数组并将textContent
更改为innerHTML
ImageArray=新数组();
ImageArray[0]=“goat1.jpg”;
ImageArray[1]=“kitchen4.jpg”;
ImageArray[2]=“pig1.jpg”;
ImageArray[3]=“site1.jpg”;
ImageArray[4]=“site2.jpg”;
ImageArray[5]=“site3.jpg”;
ImageArray[6]=“site4.jpg”;
ImageArray[7]=“site5.jpg”;
ImageArray[8]=“site6.jpg”;
ImageArray[9]=“site7.jpg”;
ImageArray[10]=“site8.jpg”;
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=ImageArray[num];
document.getElementById(“randImage”).innerHTML=(“”)
}
分配数组元素时,必须使用ImageArray
:
ImageArray[0] = 'goat1.jpg';
var ImageArray = ['goat1.jpg','kitchen4.jpg','pig1.jpg','site1.jpg','site2.jpg','site3.jpg','site4.jpg','site5.jpg','site6.jpg','site7.jpg','site8.jpg'];
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = ImageArray[num];
document.getElementById("randImage").innerHTML = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
而不是:
image[0] = 'goat1.jpg';
我还建议在声明时分配数组,而不是使用单个语句将值分配给数组的不同元素:
ImageArray[0] = 'goat1.jpg';
var ImageArray = ['goat1.jpg','kitchen4.jpg','pig1.jpg','site1.jpg','site2.jpg','site3.jpg','site4.jpg','site5.jpg','site6.jpg','site7.jpg','site8.jpg'];
function getRandomImage() {
var num = Math.floor( Math.random() * 11);
var img = ImageArray[num];
document.getElementById("randImage").innerHTML = ('<img src="' + 'images/random/' + img + '" width="250px">')
}
var ImageArray=['goat1.jpg'、'kitchen4.jpg'、'pig1.jpg'、'site1.jpg'、'site2.jpg'、'site3.jpg'、'site4.jpg'、'site5.jpg'、'site6.jpg'、'site7.jpg'、'site8.jpg'];
函数getRandomImage(){
var num=Math.floor(Math.random()*11);
var img=ImageArray[num];
document.getElementById(“randImage”).innerHTML=(“”)
}
变更建议:
var imgs = ['goat1.jpg','kitchen4.jpg','pig1.jpg','site1.jpg','site2.jpg',
'site3.jpg','site4.jpg','site5.jpg','site6.jpg','site7.jpg',
'site8.jpg'];
function getRandomImage(){
var rnd = Math.floor(Math.random()*imgs.length);
document.getElementById('randImage').src = imgs[rnd];
}
...
<div><img id="randImage" /></div>
var imgs=['goat1.jpg'、'kitchen4.jpg'、'pig1.jpg'、'site1.jpg'、'site2.jpg',
‘site3.jpg’、‘site4.jpg’、‘site5.jpg’、‘site6.jpg’、‘site7.jpg’,
"site8.jpg",;
函数getRandomImage(){
var rnd=Math.floor(Math.random()*imgs.length);
document.getElementById('randImage').src=imgs[rnd];
}
...
第二,他将不得不使用innerHTML而不是textContent。@wummtextContent
很好用,不是吗?这就像使用jQuery的.text()
而不是.html()
——它也能工作,但是textContent
对html和XML文件都能工作,而innerHTML
只对html工作。@TheWobbuffet完全正确,但OP试图达到“随机图像加载时显示”的效果。我认为他不想显示html代码。@wumm-Oh,我认为这与实体有关。那么,答案更新了看看: