html+javascript 执行顺序问题

<html><head><scripttype="text/javascript">varweek=newArray("星期日","星期一","星期二","星期三","星... <html>
<head>
<script type="text/javascript">
var week=new Array("星期日","星期一","星期二","星期三","星期四","星期五","星期六");
function funcTime(){
var d=new Date();

var nd=document.getElementById("top");
nd.innerHTML=d.getFullYear()+"年"+(d.getMonth()+1)+"月"+d.getDate()+"日"+d.getHours()+"时"+d.getMinutes()+"分"+d.getSeconds()+"秒"+week[d.getDay()];

}
setInterval("funcTime()",1000);
</script>
</head>
<body onload="funcTime();">
<div id="top"></div>
</body>
</html>
以上是一个简单的时钟页面,body部分在onload的时候调用了funcTime(),setInterval在funcTime()外面,但调用了funcTime后发现页面中的时钟就会开始走动,即setInterval已经生效。不知道原理是什么样的?执行顺序是怎么样的?谢谢
展开
 我来答
青鸟中关村专家
推荐于2016-03-23 · 知道合伙人软件行家
青鸟中关村专家
知道合伙人软件行家
采纳数:1734 获赞数:8440
就职于北大青鸟中关村,自2004年踏入北大青鸟这个行业,已经有11年工作经验和8年的培训经验,寓教于乐

向TA提问 私信TA
展开全部

    Javascript是执行顺序是至上而下的,除非特别说明, Javascript代码不会等到页面加载完毕后才执行。

    例如:

    一个网页里含有以下HTML代码

    

<div id="ele">welcome to www.jb51.net</div>

如果在这行HTML代码前,加入如下Javascript代码:


<script type="text/javascript">
  document.getElementById('ele').innerHTML= 'welcome to my blog';
</script>

运行该页面,会得到这样的错误信息:“document.getElementById(‘ele') is null。”原因是,当上面的javascript运行时,页面上还没有ID为‘ele'的DOM元素。


解决办法有两种:
1. 把javascript代码放在HTML代码之后:


 <div id="ele">welcome to www.jb51.net</div>
<script type="text/javascript">
  document.getElementById('ele').innerHTML='welcome to my blog';
</script>

2. 等到在网页加载完毕后,运行该javascript代码。可以使用传统的解决办法(load):首先加HTML的body加入“<body load="load()”>,”然后在load()函数里调用上述javascript代码。这里要着重介绍的是用jQuery来实现:


<script>
$(document).ready(function(){
   document.getElementById('ele').innerHTML= 'welcome to my blog';
});
</script>
//当然,既然用到了jQuery,更简单的写法是:
<script>
$(document).ready(function(){
   $('#ele').html('welcome to my blog'); //这里也可用.text()方法
});
</script>

可以把上述jQuery代码放在页面的任何位置,它总是等到页面加载完毕后才执行。

aAa9079
推荐于2016-04-26 · TA获得超过2289个赞
知道大有可为答主
回答量:1181
采纳率:100%
帮助的人:668万
展开全部
代码一般是从上而下加载的,但是执行的顺序可不一定是这样!
setInterval("funcTime()",1000);
这个函数就是说,当这行代码读完一秒钟之后再执行funcTime()为个函数;而funcTime()这个函数,在在之前就已经加载进来了,但是没有执行,也就是说,光加载进来不被调用的话,这个函数是不执行的。所以setInterval("funcTime()",1000);和funcTime()编写的顺序,一般是可以互换位置的。
而<body onload="funcTime();">的意思就是说当页面全部加载完成后,再执行funcTime()这个函数。也就是说,在没加载完成这个网页时,虽然加载到了<body onload="funcTime();">
这行代码,也不会执行funcTime()为个函数。假设在加载到<body onload="funcTime();">
这行代码后一个小时,整个页面才加载完的话,funcTime()只能在这一个小时之后,才会执行。
不知道这么说,说明没有!?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
圣鸾OJ
2015-09-29 · TA获得超过1629个赞
知道小有建树答主
回答量:1136
采纳率:96%
帮助的人:109万
展开全部
代码一般是从上而下加载的,但是执行的顺序可不一定是这样!
setInterval("funcTime()",1000);
这个函数就是说,当这行代码读完一秒钟之后再执行funcTime()为个函数;而funcTime()这个函数,在在之前就已经加载进来了,但是没有执行,也就是说,光加载进来不被调用的话,这个函数是不执行的。所以setInterval("funcTime()",1000);和funcTime()编写的顺序,一般是可以互换位置的。
而<body onload="funcTime();">的意思就是说当页面全部加载完成后,再执行funcTime()这个函数。也就是说,在没加载完成这个网页时,虽然加载到了<body onload="funcTime();">
这行代码,也不会执行funcTime()为个函数。假设在加载到<body onload="funcTime();">
这行代码后一个小时,整个页面才加载完的话,funcTime()只能在这一个小时之后,才会执行。
不知道这么说,说明没有!?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
魘传说
2019-10-22 · TA获得超过1115个赞
知道小有建树答主
回答量:1641
采纳率:88%
帮助的人:113万
展开全部

alert函数参数

  str--要显示在消息对话框中的文本

  alert函数说明

  alert消息对话框通常用于一些对用户的提示信息,例如在表单中输入了错误的数据时。

  1.提示:消息对话框是由系统提供的,因此样式字体在不同浏览器中可能不同。

  2.提示:消息对话框是排它的,也就是在用户点击对话框的按钮前,不能进行任何其它操作。

  3.提示:消息对话框通常可以用于调试程序。



再讲一下alert的优先级,此()运算符的优先级是最高的,因此,在其它操作进行前必须限制性()操作符。而“()”又是和函数调用相关的,也就是”alert()”了!



​下图给出js的操作符优先级表。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
flyinglede
2012-06-01 · TA获得超过262个赞
知道小有建树答主
回答量:411
采纳率:0%
帮助的人:210万
展开全部
顺序当然是自上而下的,但是onload里的是页面加载最后执行。
你这个页面页面为调用完成之前已经打开计时了,页面加载后,调入funcTime时钟开始走动
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式