2013-06-01 57 views
5

我試圖修改特定div的innerHTML,但我無法刪除該div的內容。我有以下代碼:無法修改div的innerHTML

<!DOCTYPE html> 
<html> 
    <head> 
     <title>Test</title> 
     <meta http-equiv="content-type" content="text/html; charset=UTF-8"> 
    </head> 
    <body> 
     <script type="text/javascript"> 
      function reset() { 
       document.getElementById("results").innerHTML = ""; 
      } 
      function check() { 
       document.getElementById("results").innerHTML = "foo"; 
      } 
     </script> 
     <form name="form1"> 
      <input type="button" value="Check" onclick="check();"> 
      <input type="button" value="Reset" onclick="reset();"> 
     </form> 
     <div id="results"></div> 
    </body> 
</html> 

任何人都可以指出我在哪裏做錯了嗎?

在此先感謝。

+0

您是否獲得在控制檯任何JavaScript錯誤? –

+0

請習慣使用'$('div#id_name')'而不是'getElementById'。唯一需要的是添加jQeury插件。但是當你將更多地使用Js時,它將會對你有很大的幫助。 – MaNKuR

+3

@MaNKuR完全可以接受不在所有網站中導入jQuery。畢竟它並不那麼輕。 –

回答

8

這是因爲表單中已經有一個reset函數,並且此函數被調用而不是您自己的函數。改變這個名字,它會起作用。

<script type="text/javascript"> 
     function r2() { 
      document.getElementById("results").innerHTML = ""; 
     } 
     function check() { 
      document.getElementById("results").innerHTML = "foo"; 
     } 
    </script> 
    <form name="form1"> 
     <input type="button" value="Check" onclick="check();"> 
     <input type="button" value="Reset" onclick="r2();"> 
    </form> 
    <div id="results"></div> 

Demonstration

這類問題是一個原因,以避免內聯函數調用。優選的方法是

<form name="form1"> 
     <input type="button" value="Check" id=check> 
     <input type="button" value="Reset" id=reset> 
</form> 
<div id="results"></div> 
<script type="text/javascript"> 
     document.getElementById("reset").onclick = function() { 
      document.getElementById("results").innerHTML = ""; 
     } 
     document.getElementById("check").onclick = function(){ 
      document.getElementById("results").innerHTML = "foo"; 
     } 
</script> 
+1

這就像'with(this.form)with(this)/ * onclick method * /' –

2

onclick="window.reset();"