在javascript中更新innerHTML但删除了过去的innerHTML

时间:2013-04-21 22:29:52

标签: javascript events toggle handler

使用Javascript,我想在2张图片之间切换。 到目前为止,我正在使用一个计数器,然后根据点击图像时计数器是偶数还是奇数来改变我的innerHTML

第一次单击图像时,通过替换已经存在的图像,它会工作,但是在第一次之后它会继续添加图像。 如何在第二次更改图像后更改图像而不是在单击时添加图像?

<!DOCTYPE html>
<html>
  <head>
    <script>
      var x = 0;
      function myFunction() {
        x++;
        var div1 = document.getElementById('div1');
        if (x % 2 != 0) {
          var y = document.write('<img src="http://www.computric.com/wp-content/uploads/2011/09/119709197585381818TzeenieWheenie_Power_On_Off_Switch_red_2.svg_.med_.ng" alt="sometext" onclick=myFunction()>');
          div1.appendChild.innerHtml = y;
        } else if (x % 2 == 0) {
          var y = document.write('<img src="http://0.tqn.com/d/pcsupport/1/0/Y/A/-/-/on.jpg"       alt="some_text" onclick=myFunction()>')
          div1.appendChild.innerHTML = y;
        }
      }
    </script>
  </head> 
  <body>
    <div id="div1" style="font-size:12px" onclick=myFunction()> <span onclick=myFunction()>
     <img src="http://0.tqn.com/d/pcsupport/1/0/Y/A/-/-/on.jpg" alt="some_text">
     </span> 
    </div>
  </body>
</html>

1 个答案:

答案 0 :(得分:2)

如果您只想尝试切换效果,那么这样的事情应该有效:

<!DOCTYPE html>
 <html>
 <head>

<script>
var x=0;
function myFunction(){
    var div1=document.getElementById('div1');
    if(x==0){
        x=1;
        document.getElementById("myimgid").src = "http://www.computric.com/wp-content/uploads/2011/09/119709197585381818TzeenieWheenie_Power_On_Off_Switch_red_2.svg_.med_.ng";
    }
    else{
        x=0;
        document.getElementById("myimgid").src = "http://0.tqn.com/d/pcsupport/1/0/Y/A/-/-/on.jpg";
    }
}

</script>
 </head>
 <body>


 <div id="div1" style="font-size:12px" onclick=myFunction()>
 <span>
 <img id="myimgid" src="http://0.tqn.com/d/pcsupport/1/0/Y/A/-/-/on.jpg" alt="some_text">
 </span>
 </div>

 </body>
 </html>