首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将生成的随机数存储在变量中,然后调用该变量作为文件名来显示图像。Javascript

将生成的随机数存储在变量中,然后调用该变量作为文件名来显示图像。Javascript
EN

Stack Overflow用户
提问于 2013-11-20 22:22:59
回答 4查看 3.9K关注 0票数 0

所以我有几张照片,我想在一个页面上随机生成。这些图片名为0-9 .png,我使用一个预先制作的函数来生成随机数.我的问题是,当我试图调用这个函数在稍后的页面,它没有放置图像。什么都没有出现。

我知道这很简单,但我在这里的桌子上拼命工作。我想知道的是是什么扰乱了我的职能?

代码语言:javascript
复制
function showimg()  
{  
    /*  
    The showimg() function displays a random image from the 0.png through 9.png
    files.  
    */  
    var imgNumber = randomInteger(9);  
    return imgNumber;  
    /* Return a random number from 0 to 9 */  
    document.write("<img src='imgNumber.png' alt='' />");  

}  
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-11-20 22:54:49

关于你如何处理这个问题,有几个问题。

首先,在现代Javascript开发中,使用document.write是不好的做法。您应该使用像appendChild这样的东西。

其次,在字符串中引用imgNumber。这里只使用"imgNumber“,而不是imgNumber变量的内容。为此,字符串连接是插入它的一种方式:

代码语言:javascript
复制
"<img src='" + imgNumber + ".png'>"

下面是我处理你的问题的方法。首先,在页面上放置一个空元素,在其中添加图像:

代码语言:javascript
复制
<div id="random-images-here"></div>

然后,在该元素之后的某个地方,您可以得到以下Javascript,类似于您的Javascript:

代码语言:javascript
复制
<script>
    // create a random integer from 0 to maxInt
    var randomInteger = function(maxInt) {
        return Math.floor(Math.random() * (maxInt + 1));
    };

    // append a random image to el
    var showImg = function(el) {
        var imgNumber = randomInteger(9),
            img = document.createElement('img');

        img.src = imgNumber + ".png";
        img.alt = "Image #" + imgNumber;

        el.appendChild(img);
    };

    // grab the element to append images to
    var imgHolder = document.getElementById('random-images-here');

    // place 4 images in the image holder
    for (var i = 0; i < 4; i++) {
        showImg(imgHolder);
    }
</script>

这是一个演示

(注意:我稍微修改了演示中的代码,以使用我找到的带有数字图像的站点。)

票数 0
EN

Stack Overflow用户

发布于 2013-11-20 22:34:42

你得说document.write("<img src='" + imgNumber + ".png' alt='' />");。即使imgNumber是整数,JavaScript也会自动将其转换为字符串。

另外,您需要将document.write调用放在return语句之前。

然而,就像其他人所说的那样,document.write可能不是向页面添加内容的最佳方法。我建议您获取JQuery或其他东西,并将其用于DOM操作。

票数 1
EN

Stack Overflow用户

发布于 2013-11-20 22:39:59

您正在编写javascript,因此您需要编辑图像的来源,如果您在php中尝试它,它将工作。

代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<title>Example</title>
<script>
        var imgNumber = Math.floor((Math.random()*9)+1);

 document.getElementById("example").src= imgNumber + '.png';


</script>
</head>
<body>
<img id='example' src="" alt="">

</body>
</html>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20108328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档