您的位置:首页 > Web前端 > JavaScript

关于JavaScript的位置问题

2008-09-14 10:32 295 查看
头两天写了一个程序,出现了无法识别的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,要多浏览器同时测试
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: