这个js代码为什么不能正常运行?哪里错了??

<html><head><style></style><scripttype="text/javascript">varclkNode=document.getEleme... <html>
<head>
<style>

</style>
<script type = "text/javascript">
var clkNode = document.getElementById("clkBtn");
var showNode = document.getElementById("showTxt");
clkNode.onclick = function() {
this.style.display = "none";
showNode.style.display = "block";
};

</script>
</head>
<body>
<a href="javascript:;" id="clkBtn">请点击</a>
<span id="showTxt" style="display:none">您已经点击过</span>

</body>
</html>
展开
 我来答
huibo865686
2014-10-27 · TA获得超过916个赞
知道小有建树答主
回答量:325
采纳率:80%
帮助的人:264万
展开全部

顺序不对,因为html在加载的时候,是从上到下顺序执行,也就是加载到那里就运行那里的代码

这样,加载到你的script标签的时候,就会执行你script标签里面的javascript代码了

而那时候下面的body和div都没有被加载和执行编译,也就是还找不到这些元素,你可以把代码放到这些元素的下面就可以保证在执行你的javascript代码的时候,div等元素都是已经准备好了的


具体还可以这样做

1

window.onload = function(){
  //在这里写的javascript代码是可以安全执行的,它的执行时间是
  //当页面完全被加载完成后才会执行
}

2

就是把script标签都统一放到页面的最底部也就是</body>这个标签之前。

阳光上的桥
2014-10-27 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

你不要在HTML代码定义之前用JS调用,交换顺序就对了,下面的代码测试通过:


<html>
<head>
<style>
</style>
</head>
<body>
<a href="javascript:;" id="clkBtn">请点击</a>
<span id="showTxt" style="display:none">您已经点击过</span>
<script type = "text/javascript">
    var clkNode = document.getElementById("clkBtn");
    var showNode = document.getElementById("showTxt");
    clkNode.onclick = function() {
   this.style.display = "none";
    showNode.style.display = "block";
};
</script>
</body>
</html>
追问
谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式