2011-04-11 27 views
0

我是一個JavaScript的新手。我有這樣的腳本:幫助一個簡單的腳本togle 2圖像,縮略圖和原圖

<html> 
    <head>   
     <script type="text/javascript"> 

      var x= '<img id="im" src="thumbnail.gif">'; 

      switch (x) 
      { 
      case x=='document.getElementById("im")': 
      document.getElementById('im').outerHTML='<img id="im" src="fullsize.gif">'; 
      break; 
      case x!='document.getElementById("im")': 
      document.getElementById('im').outerHTML='<img id="im" src="thumbnail.gif">'; 
      break; 
      default: x; 
      } 

     </script> 
    </head> 
    <body> 
     <span onclick="switch()"> 
      <img id="im" src="thumbnail.gif"> 
     </span>  
    </body> 
</html> 

我需要保持簡單,但也使它使用開關功能。我沒有用我的腳本。我也不是在尋找幻燈片。

回答

0

其中之一,你不希望引用'document.getElementById("im")',因爲這意味着你正在尋找該字符串。二,案件陳述不起作用,語法是case value,而不是case expression(表達式是您的==)。三,你沒有實際的函數調用。你打電話switch它不會做任何事情......

嘗試類似:

function swap(){ 
    switch(document.getElementById('im').outerHTML){ 
     case x: 
      ... 
      break; 

     default: 
      ... 
      break; 
    } 
} 

... 

<span onclick="swap();"> 

應該解決您現有的代碼。或者這樣做的「正確」方式更像是:

function swap(){ 
    var node = document.getElementById('im'); 
    node.src = node.src.indexOf('fullsize')>=0 ? 'thumbnail.gif' : 'fullsize.gif'; 
} 

... 

<span onclick="swap();"> 

哦,我解決了您的原始問題。

+0

感謝您的快速回復。我已經在IE,FF和Opera上測試過你的代碼。它效果很好。我之前沒有使用過indexOF。 – user701709 2011-04-12 17:05:41