【问题标题】:Having Trouble Switching Images无法切换图像
【发布时间】:2015-07-26 17:59:23
【问题描述】:

我只是在学习一些java。我目前正在学习 if,else 语句。

在我正在创建的游戏中,用户选择一个介于 0 和 10 之间的数字并将其放入输入框中。如果正确,屏幕上的图像将变为一张图片,如果不正确,则会切换到另一张图片。但是,我似乎根本无法改变图像。我尝试了几种不同的编码方式;我目前正在使用 img 数组。但是,当我执行代码时,我收到 ObjectHTMLImageElement 错误。

这是我当前的代码:

<div id="top">
    <h1>Pie in the Face</h1>
    <p>Guess how many fingers I'm holding up between 0 and 10.
        <br /> If you guess correctly, I get a pie in the face.
        <br /> If you guess wrong, you get a pie in the face.</p>

    <input id="answer" />
    <button id="myButton">Submit</button>
    </center>
</div>
<div id="container">
    <div id="image"></div>
    <div id="manpie"></div>
    <div id="girlpie"></div>
</div>


<script type="text/javascript">
    var x = Math.random();

    x = 11 * x;
    x = Math.floor(x);

    var imgArray = new Array();

    imgArray[0] = new Image();
    imgArray[0].src = "images/manpie2.jpg";

    imgArray[1] = new Image();
    imgArray[1].src = "images/girlpie2.jpg";


    document.getElementById("myButton").onclick = function() {

        if (x == document.getElementById("answer").value) {
            document.getElementById("image").innerHTML = imgArray[0];

            // what I had document.getElementById("image").innerHTML=imgArray[0];

        } else {
            document.getElementById("image").innerHTML = imgArray[1];
        }

    }
</script>

</body>

我也尝试过使用以下行:document.getElementById("image").innerHTML=document.getElementById("manpie");

然后没有任何效果。这是它所在的“实时”站点的链接。 http://176.32.230.6/mejorarcr.com/

任何帮助将不胜感激。谢谢!

【问题讨论】:

  • 首先javajavascript之间有很大的不同。确实,Java 是一回事,JavaScript 是另一回事,但两者都是编程语言。
  • 嗯好吧,我想我需要了解这种差异!

标签: javascript html css object


【解决方案1】:

您必须更改代码中的 innerHTML 值:

if (x==document.getElementById("answer").value) {
          document.getElementById("image").innerHTML='<img src="'+imgArray[0].src+'" />';

          // what I had document.getElementById("image").innerHTML=imgArray[0].src;

         } else {
         document.getElementById("image").innerHTML='<img src="'+imgArray[1].src+'" />';
         }

DEMOthis

【讨论】:

  • 不错的演示...我可以玩一整晚。 :D
  • 成功了!非常感谢!我完全确定如果我引用了数组,为什么我必须在那里更改图像源,但也许它只是其中之一......就像在数学中一样,有些东西就是这样。再次感谢您!
【解决方案2】:

改变:

document.getElementById("image").innerHTML=imgArray[0];

到:

document.getElementById("image").setAttribute("src", imgArray[0]);

确保 imgArray[0] 是实际的图像路径:

          imgArray[0]="images/manpie2.jpg";

          imgArray[1]="images/girlpie2.jpg";

【讨论】:

  • 谢谢!这是有道理的,这仍然让我有点困惑,但这有助于我必须锁定一些思维模式。
猜你喜欢
  • 1970-01-01
  • 2013-06-20
  • 1970-01-01
  • 2020-05-21
  • 1970-01-01
  • 2020-09-05
  • 2020-10-01
  • 2011-07-03
  • 2012-01-21
相关资源
最近更新 更多