关于JavaScript的位置问题
头两天写了一个程序,出现了无法识别的id值。下面我把代码贴出来:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
</HEAD>
<SCRIPT LANGUAGE="JavaScript">
<!--
var _table = document.getElementById("table1");
function deleRow()
{     
   _table.deleteRow(_table.rows.length-1);
}
 function deleColum()
{
   for(var i=0; i<_table.rows.length;i++)
   {
    var colum = _table.rows[0].cells.length;//获得第一列的格子数
    _table.rows[i].deleteCell(colum-1);
   
   }
}
   }
//-->
</SCRIPT>
<BODY>
<TABLE name="table" id="table1" bordercolor="#00000" width="200" border="1">
   <TR>
    <TD>00</TD>
    <TD>01</TD>
    <TD>02</TD>
    <TD>03</TD>
   </TR>
   <TR>
    <TD>10</TD>
    <TD>11</TD>
    <TD>12</TD>
    <TD>13</TD>
   </TR>
   <TR>
    <TD>20</TD>
    <TD>21</TD>
    <TD>22</TD>
    <TD>23</TD>
   </TR>
</TABLE>
<br>
<input type="button" value="删除一行" onclick="deleRow()" >  
<input type="button" value="删除一列" onclick="deleColum()" >
</BODY>
</HTML>
运行本程序出现的问题提示错误是:_table对象为空或不是对象。解决的方法先是把javascript放到<head>里,不行。现放到<body>里,还是不行。再生成单独的文件还是不行。最后上网搜到的方法是放到</html>后面,可以了。其实javascript加裁到html页面是顺序加载的,当放到<TABLE name="table" id="table1" bordercolor="#00000" width="200" border="1">之前的时候是无法识别到table1的,所以放在最后的时候可以。可是我觉得这样不好,本来javascript放到哪都可以的,后来再上网搜,才找到一个方法,就是在<script type="text/javascript"> 里面加个defer=true属性,一试,成功了。在单独的文件里也可以写加上defer,执行这个程序就ok了。
使用defer属性可以让脚本在整个页面装载完成之后再解析,而非边装载边解析。   
这对于只包涵事件触发的js脚本而言,可以提高整个页面的加载速度。 
DEFER是脚本程序强大功能中的一个“无名英雄”。你可能从没有使用过它,但是看完这里的介绍后,相信你就离不开它。它告诉浏览器Script段包含了无需立即执行的代码,并且,与SRC属性联合使用,它还可以使这些脚本在后台被下载,前台的内容则正常显示给用户。   
    
     最后请注意两点:     
     1、不要在defer型的脚本程序段中调用document.write命令,因为document.write将产生直接输出效果。   
     2、而且,不要在defer型脚本程序段中包括任何立即执行脚本要使用的全局变量或者函数。
 
但只支持IE,要多浏览器同时测试
 
                    
                     
                    
                 
                    
                 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号