Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/456.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 设置img元素的.src失败_Javascript_Html_Visual Studio 2012 - Fatal编程技术网

Javascript 设置img元素的.src失败

Javascript 设置img元素的.src失败,javascript,html,visual-studio-2012,Javascript,Html,Visual Studio 2012,我有一个6x6 html-表格。每个保存,其中每个img-元素的id声明为“1back”到“36back”。此外,我还有名为“1.jpg”到“18.jpg”的18.jpg文件。每个图像必须在网格中出现两次,随机分布 我正努力实现以下目标: function PopulateGrid() { for (var i = 1; i <= 18;i++) //For each image file { var randomnumbe

我有一个6x6 html-
表格
。每个
保存
,其中每个
img
-元素的
id
声明为
“1back”
“36back”
。此外,我还有名为
“1.jpg”
“18.jpg”
的18.jpg文件。每个图像必须在网格中出现两次,随机分布

我正努力实现以下目标:

    function PopulateGrid() {

        for (var i = 1; i <= 18;i++) //For each image file
        {
            var randomnumber = Math.floor(Math.random() * (36 - 1 + 1)) + 1; // get random # 1-36


            while (document.getElementById(randomnumber + "back").src != "")
            {
              //if the randomly chosen <img> id is not "" genrate another random number
               randomnumber = Math.floor(Math.random() * (36 - 1 + 1)) + 1;
            }

            document.getElementById(randomnumber + "back").src = "Images/" + i + ".jpg";


            //Doing this twice as every image has to appear twice
            while (document.getElementById(randomnumber + "back").src != "") {
                randomnumber = Math.floor(Math.random() * (36 - 1 + 1)) + 1;
            }

            document.getElementById(randomnumber + "back").src = "Images/" + i + ".jpg";
        }
    }
函数PopulateGrid(){

对于(var i=1;i请尝试使用console查看您的img的src,当您将src设置为“”时,您很可能会得到您的基本url,因此您的!=“”将永远不会为false。请尝试如下设置您的img:

<img id="1back">

应该一直验证,直到您分配了一个src。

while(document.getElementById(randomnumber+“back”).src!=”{…
我在
while
循环中没有看到将
.src
设置为
的任何内容
。您可以尝试另一种方法:创建一个包含36个元素的数组,其中从1到18的每个数字显示两次,
[1,1,2,2,…,18,18]
,然后在单个循环中分配图像源。您好,我同意您可以采用另一种方法来实现它。对于这段代码,您可以放置一个控制台。log()语句来记录生成的随机数,并查看随机生成该数是否花费太长时间。