innerHTML基础知识

时间:2011-02-14 12:27:46

标签: javascript innerhtml

我正在学习javascript,我想尝试使用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

4 个答案:

答案 0 :(得分:3)

超链接正在重定向。这会导致innerHTML设置,然后将页面重新加载回原始状态。如果您在本地计算机上进行开发,这可能会很快,您可能会认为它是Javascript。 (将其上传到网络服务器,您应该看到页面重新加载更清晰了。)

尝试将代码更改为:

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

不需要设置超级链接,因为您在单击时不希望它重定向,因此请将其设置为#

;中的半冒号(onclick)将要调用的代码分开。所以你可以有一个很大的函数调用列表,例如:

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

返回false将在函数运行后停止任何重定向或跳转(#href默认为页面顶部,如果您有一个长页面,这会很烦人。)

答案 1 :(得分:2)

它会消失,因为文档被重定向到链接href。它与innerHTML无关。

要阻止它,请像这样添加return false

onclick="getNbr(); return false;"

答案 2 :(得分:1)

您的链接正在将您重定向到“javascript.html”。因此,由于新页面加载

,您的调用结果将丢失

答案 3 :(得分: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>