我做了一个表格,html里面只有一个<div></div>,其他的<table><tr><td>都是用js生成的。然后我在网络里面找了一些样式复制到我的页面里面,但是没有起作用,然后我就用alert调试。这个时候我在处理样式的js函数的某句tables=document.getElementsByTagName('table');
后面加上alert(tables.length);,弹框说明tables.length=0,但是点确定后样式竟然生效了,我把alert注释掉,样式又没有生效这是什么原因? alert有改变了什么吗?感觉像是alert等了一小会,等到表格生成结束后样式就起作用了?JavaScriptcssalert

解决方案 »

  1.   

    alert跟这个是没有关系的
    你把你所有的JS代码放在  html后面或者 $(document).ready(function(){
        /*放这里*/
    });
      

  2.   

    你写的js脚本在程序运行的时候,都会被预编译
    可能就是table还木有生成的时候执行了alert
    建议先把table生成脚本写入加载项,比如楼上说的就可以,再去调试alert
      

  3.   

    alert会把当前线程挂起
    这个时候 后面的js语句是不会执行的 知道你点了[确认]位置恰恰这么点时间  你那个table就渲染好了
    呵呵所以你的js调用的时机不对
    你要等table全部渲染好了 在调用这个代码
      

  4.   

    回LS的各位,看来确实是由于table还有生成结束,就开始执行样式的函数了, 有搜索了下,按照网上的方法,把这个函数放在$(document).ready(function(){}和放在window.onload = function(){}都不行,把这个函数放到生成table的函数里面的最后就行了。
      

  5.   


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