我正在学习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%"> </td> ...
<p><a href="javascript.html" onclick="getNbr()">get a number</a></p>
查看下面的教程看起来非常简单,所以我很惊讶它对我不起作用
答案 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>