请教一个问题,这个情况下alert改变了啥?

jxdz232601 2013-06-25 12:35:48
我做了一个表格,html里面只有一个<div></div>,其他的<table><tr><td>都是用js生成的。

然后我在网络里面找了一些样式复制到我的页面里面,但是没有起作用,然后我就用alert调试。

这个时候我在处理样式的js函数的某句tables=document.getElementsByTagName('table');
后面加上alert(tables.length);,

弹框说明tables.length=0,但是点确定后样式竟然生效了,

我把alert注释掉,样式又没有生效

这是什么原因? alert有改变了什么吗?感觉像是alert等了一小会,等到表格生成结束后样式就起作用了?
...全文
124 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
萧萧可乐 2013-06-25
  • 打赏
  • 举报
回复
alert跟这个是没有关系的 你把你所有的JS代码放在 html后面或者

$(document).ready(function(){
    /*放这里*/
});
  • 打赏
  • 举报
回复
引用 4 楼 jxdz232601 的回复:
回LS的各位,看来确实是由于table还有生成结束,就开始执行样式的函数了, 有搜索了下,按照网上的方法,把这个函数放在$(document).ready(function(){}和放在window.onload = function(){}都不行,把这个函数放到生成table的函数里面的最后就行了。
要了解HTML的运行机制,你就明白了
jxdz232601 2013-06-25
  • 打赏
  • 举报
回复
回LS的各位,看来确实是由于table还有生成结束,就开始执行样式的函数了, 有搜索了下,按照网上的方法,把这个函数放在$(document).ready(function(){}和放在window.onload = function(){}都不行,把这个函数放到生成table的函数里面的最后就行了。
KK3K2005 2013-06-25
  • 打赏
  • 举报
回复
alert会把当前线程挂起 这个时候 后面的js语句是不会执行的 知道你点了[确认]位置 恰恰这么点时间 你那个table就渲染好了 呵呵 所以你的js调用的时机不对 你要等table全部渲染好了 在调用这个代码
  • 打赏
  • 举报
回复
你写的js脚本在程序运行的时候,都会被预编译 可能就是table还木有生成的时候执行了alert 建议先把table生成脚本写入加载项,比如楼上说的就可以,再去调试alert

87,991

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧