日期:2014-05-16  浏览次数:20349 次

请教一个问题,这个情况下alert改变了啥?
我做了一个表格,html里面只有一个<div></div>,其他的<table><tr><td>都是用js生成的。

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

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

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

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

这是什么原因? alert有改变了什么吗?感觉像是alert等了一小会,等到表格生成结束后样式就起作用了?
JavaScript css alert

------解决方案--------------------
alert跟这个是没有关系的
你把你所有的JS代码放在  html后面或者 

$(document).ready(function(){
    /*放这里*/
});

------解决方案--------------------
你写的js脚本在程序运行的时候,都会被预编译
可能就是table还木有生成的时候执行了alert
建议先把table生成脚本写入加载项,比如楼上说的就可以,再去调试alert
------解决方案--------------------
alert会把当前线程挂起
这个时候 后面的js语句是不会执行的 知道你点了[确认]位置

恰恰这么点时间  你那个table就渲染好了
呵呵

所以你的js调用的时机不对
你要等table全部渲染好了 在调用这个代码
------解决方案--------------------
引用:
回LS的各位,看来确实是由于table还有生成结束,就开始执行样式的函数了, 有搜索了下,按照网上的方法,把这个函数放在$(document).ready(function(){}和放在window.onload = function(){}都不行,把这个函数放到生成table的函数里面的最后就行了。


要了解HTML的运行机制,你就明白了