JavaScript:图像数组

时间:2013-10-23 22:04:50

标签: javascript html

我正在学习HTML和JavaScript并开始,我正在创建一个使用for循环显示4个图像的简单网站。但是,当我在浏览器中查看时,我只能看到图像的名称,而不能看到图像本身。这是我的代码:

<html xmlns="http://www.w3.org/1999/xhtml" >
<div id = "products" align = "center">

 <script>

  function showImages() {
    var productImg = new Array("a.png", "b.png", "c.png","d.png");
    var x = " ";

     for (var i = 0; i < productImg.length; i++) {

        var image = productImg[i];
        x += image;

    }

    var getImg = document.getElementById('products').innerHTML = x;
}



  </script>
  </div>
  <body onload = "showImages()">

   </body>
   </html>

我在这里缺少什么?提前谢谢。

2 个答案:

答案 0 :(得分:1)

这应该有效。你的图片需要img标签:)对于问题你错过了什么,我必须用HTML回答几乎所有内容。

<html xmlns="http://www.w3.org/1999/xhtml" >
    <head>
        <script>
        function showImages() {
            var productImg = ["a.png", "b.png", "c.png","d.png"];
            var x = "";
            for (var i = 0; i < productImg.length; i++) {
                var image = productImg[i];
                x += '<img src="' + image + '"/>';
            }
            var getImg = document.getElementById('products').innerHTML = x;
        }
        </script>
    </head>
    <body onload="showImages()">
    <div id="products" align="center"></div>
    </body>
</html>

答案 1 :(得分:0)

Joni的答案非常正确 - 但是在您学习的同时,请记住HTML“只是”一个结构化的文本文档,这将为您带来很长的路要走。一旦你准备好动态创建内容,那么就准备好用DOM进行大量的学习了。但是,看起来你已经知道了一些代码,所以这只是成功的一半。 ;)

为了让您了解如何使用JS执行此操作,您要查找的是Image对象。您可以通过编写类似var myPicture = new Image();的内容来创建新图像。就目前而言,这在您的文档中尚不存在,并且它没有源 - 资源的路径,但您确实有对新图像的引用,您可以使用它来执行操作。

您可以通过更改其src属性为其提供来源,例如:myPicture.src="a.png";。但是,您必须记住(这对很多很多事情来说)加载该图像的操作是异步。这意味着如果要将图像添加到文档中,则在加载图像之前不会看到任何内容。图像是开始理解这一点的好地方。尝试在控制台中使用这些命令(chrome中的开发人员工具),看看它有什么不同。

var myPicture = new Image();
myPicture.src = 'a.png';
document.body.appendChild(myPicture); // may or may not show the image, depending on how long it takes to load, but should be almost instant on a localhost or file

var myEmptyPicture = new Image();
document.body.appendChild(myEmptyPicture); // you will see the empty image tag in the document
myEmptyPicture.onload = function(){
  console.log('I have finished loading the picture!')
};
myEmptyPicture.src = 'b.png'; // you kept the reference to the image, so you can change its src attribute even while it is in the document - this is important for more advanced stuff, and it should log a message to your console

// last one, this will insert itself into the document once it has loaded
myAutomaticPicture = new Image();
myAutomaticPicture.onload = function(){
  console.log('picture loaded, inserting into document');
  document.body.appendChild(myAutomaticPicture); // should see it in the document now
}
myAutomaticPicture.src = 'c.png';

onload属性的特殊之处在于它将一个函数作为其值。图像加载完成后调用此函数。

要尝试的事项,更改DOM中已有元素的src属性,或使用document.createElement方法创建其他元素并附加它们(例如:var heading = document.createElement('h1'); heading.innerHTML='hello'; document.appendChild(heading);)。

一旦你开始看到这一切是如何结合起来的,这很有趣......