2011-02-14 210 views
3

我正在學習javascript,我想用innerHTML進行實驗。我發現隨機數字會短暫出現,但它不會「粘住」,即它會消失得無影無蹤。innerHTML基礎知識

<script language="javascript" type="text/javascript"> 
function getNbr(){ 
var n = Math.floor(Math.random() * 10) ; 
document.getElementById("nbr").innerHTML = n ; 
} 

HTML:

<td id="nbr" width="75%">&nbsp;</td> ... 
<p><a href="javascript.html" onclick="getNbr()">get a number</a></p> 

看着下面的教程似乎很簡單,所以我很驚訝,它不會爲我工作

http://www.tizag.com/javascriptT/javascript-innerHTML.php

+0

你是什麼意思「馬上」?你的意思是重新加載頁面後? –

+0

當我點擊鏈接,在FF中,我看到一個隨機數字出現在瞬間 – raoulbia

回答

4

的超鏈接重定向。這會導致innerHTML設置,然後該頁面會重新加載回原始狀態。如果你在本地機器上開發,這可能很快,你可能會得出它是Javascript。 (上傳到網絡服務器,你應該看到頁面重新加載更清晰)。

嘗試的代碼更改爲:

<p><a href="#" onclick="getNbr();return false;">get a number</a></p> 

超鏈接時並不需要進行設置,因爲你不希望它當你點擊它重定向,因此它設置爲#

onclick中的分號(;)分隔了要調用的代碼。所以,你可以有一個大名單的函數調用,例如:

"getNbr();anotherFunc();yetAnother();return false;" 

返回false將停止任何重定向或功能已經運行後#HREF的默認跳轉(到頁面的頂部,如果你有這惱人一長頁)。

+0

+1超級速度! :) –

+0

謝謝大家! 'javascript.html'是實際頁面的名稱。所以我應該按照Tom的建議使用href =「#」,或者按照Shadow Wizard – raoulbia

+0

或兩者的建議添加return false來修改我的onclick!刪除.html頁面鏈接使代碼的目的更加有意義,簡潔和乾淨。返回false將防止點擊時任何不自然的頁面跳轉。 –

3

它會消失,因爲文檔被重定向到鏈接href。它與innerHTML無關。

爲了防止這種情況,加上return false這樣的:

onclick="getNbr(); return false;" 
2

你的鏈接重定向你 「javascript.html」。所以你調用的結果都將丟失,因爲新的頁面加載

1

的問題是在這裏:

<p><a href="javascript.html" onclick="getNbr()">get a number</a></p> 

當你點擊這個錨,你將被重定向到javascript.html頁。你可以使用下面的方法:

<p><a href="#" onclick="getNbr()">get a number</a></p>