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

急!问一个奇怪的问题关于document.getElementById方法,高手进,100分
我用document.getElementById取得一个页面控件,代码是这样的:
      <script   language=javascript>
            window.onload   =   function(){
            var   tb1=document.getElementById( "tb1 ");
              if(tb1==null)     ....
            }
        </script>
    而tb1对象是页面开始的时候用以下方法生成的:
    <SCRIPT   language= "javascript "> initTable "DivisionCtrlDataTable "); </SCRIPT>

我在执行tb1=document.getElementById( "tb1 ")的时候出现的情况非常奇怪,有的时候能取道tb1对象,有的时候不能,也没有什么规律,这究竟是什么问题呢?
奇怪,难道用script生成的对象很不可靠吗?

------解决方案--------------------
<SCRIPT language= "javascript "> initTable( "DivisionCtrlDataTable "); </SCRIPT>


------解决方案--------------------
生成时间问题,写在setTimeout中得到这个对象就会隐藏这个问题
------解决方案--------------------
上面: <SCRIPT language= "javascript "> initTable( "DivisionCtrlDataTable "); </SCRIPT>
下面:
<script language=javascript>
body.onload = function(){
var tb1=document.getElementById( "tb1 ");
if(tb1==null) ....
}
</script>

try
------解决方案--------------------
window.onload好像是页面下载完时触发,但是那个时候生成table的代码可能没执行呢~~~

别把取id的代码放在onload事件里,放在页面的最后就行了~~~
------解决方案--------------------
应该不是时间的问题吧,在window.onload的时候,函数initTable早就执行完了,tb1也应该存在了.
------解决方案--------------------
尝试用window.timeout作一个时间队列来得到tb1对象
------解决方案--------------------
估计是生成顺序的问题