那么有什么不同呢?先看一个例子: 一个二级级联动态下拉列表框,一级分类(即大类别)id="vSort0". 复制代码 代码如下: <head> function changelocation(id) {…………} </head> <body><select class="input1" id="vSort0" name="vSort0" onChange="changelocation(document.form4.vSort0.options[document.form4.vSort0.selectedIndex].value);" style="width:100px;">……省略……</select> ……………… </body> 现在有个js脚本: 复制代码 代码如下: <script LANGUAGE= "JavaScript" > changelocation(document.form4.vSort0.options[document.form4.vSort0.selectedIndex].value); //初始化第一个一级分类的二级分类,去掉后第一个一级分类的二级分类在页面载入之后不显示。回选才显示。将一级分类的value传给changelocation()函数,生成二级分类的列表 </script> 那么把这个js脚本放head里面还是body里面呢? 答案是不仅要放到body里面,而且还得放到定义id='vSort0'的列表框后面,因为这个js脚本中有document.form4.vSort0.selectedIndex,如果放到head里或者body的id='vSort0'前,页面加载后顺序执行代码,执行到这个js发现vSort0未定义(即undefind),这个js也就失去了作用。 而为什么我们经常看到有很多的人把js脚本放到head里面没事呢?对! 就是因为你看到的在head里的js代码有onclick等事件传递了变量给函数。 这就告诉我们,如果我们想定义一个全局对象,而这个对象与页面中的某个按钮(等等)有关时, 我们必须将其放入body中,道理很明显:如果放入head,那当页面加载head部分的时候,那个按钮(等等)都还没有被定义(也可以说是还没有被加 载,因为加载的过程就是执行代码的过程,包括了定义),你能得到的只可能是一个undefind。
推荐阅读
jQuery load方法用法集锦
调用load方法的完整格式是:load( url, [data], [callback] ),其中 url:是指要导入文件的地址。 data:可选参数;因为Load不仅仅可以导入静态的html文件,还可以导入动态脚本,例如PHP文件,所以要导入的是动态文>>>详细阅读
本文标题:JS代码放在head和body中的区别分析
地址:http://www.17bianji.com/kaifa2/JS/23882.html
1/2 1