Js放到HTML文件中的哪个位置有什么区别


Posted in Javascript onAugust 21, 2013

这个问题一直是初学者的困惑。先明白js能放在HTML的那个位置,分别是head和body中。大部分人都是放到head里面的。我学的时候也是稀里糊涂的跟着放到head的里面,也不知道为什么?今天看说说,放到这两个地方的区别:
先看一段html代码:

<html> 
<head> 
<title> New Document </title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> <script type="text/javascript" src="test.js"></script> 
</head> 
<body> 
<div id="target"> 
</div> 
<button id="btn">按钮</button> 
</body> 
</html>

var test = function(){ 
var span = document.createElement("span"); 
span.innerHTML="添加"; 
document.getElementById("target").appendChild(span); 
} document.getElementById("btn").onclick=test;

如果这段代码放到head里面就不能运行。为什么?
这就要说一下HTML的运行顺序了,应该确切点说不是HTML的运行顺序,是js的运行顺序。HTML从上运行到<script type="text/html" src="test.js"></script>的时候进入test.js文件。前面的不会运行,也就是被function包起来的不会被运行,这个时候就执行最后一句。去页面中取元素Id为btn的元素。但是这个时候,HTML页面并没有加载完。肯定取不到id为btn的元素。会报错。这个时候有人说可以改为下面的代码:
document.body.onload = function(){ 
document.getElementById("btn").onclick=test; 
};

但是这样写还不如,写到</body>的前面呢。
有没有注意到,上面的[document.getElementById("btn").onclick=test;]中test没有括号,那如果改成[test()].会怎么样呢
Js放到HTML文件中的哪个位置有什么区别 
结果如图,页面载入就是是这个样子,点击按钮没有反应。将js代码改成如下:
var test=function(){ 
var span = document.createElement("span"); 
span.innerHTML="添加"; 
document.getElementById("target").appendChild(span); 
return function(){ 
alert("aaaa"); 
}; 
} document.getElementById("btn").onclick=test();

页面载入的时候,还是和上面一个样子,当点击按钮的时候,有反应了弹出一个框内容是”aaaa“;说明点击的时候执行了函数中return的值。也就是加括号的时候,不触发事件也会执行函数。触发事件的时候执行函数的返回值。不加括号的时候,触发事件才执行函数。

html的事件触发器,内容能写什么?
•比如onclick="";双引号里面能写什么。一般看到的可以写函数,比如,onclick="test();"。除了这个还能写什么呢?好有这个分号能不写吗?
•看上面的js代码,每一行都有分号。分号的作用就是为了语句被混淆。那也就是说onclick里面可以写js代码。写一个试试,如下

<html> 
<head> 
<title> New Document </title> 
<meta http-equiv="content-type" content="text/html;charset=utf-8"> 
</head> 
<body> 
<div id="target"> 
</div> 
<button id="btn" onclick="var espan = document.createElement('span');espan.innerHTML='添加';document.getElementById('target').appendChild(espan);">按钮</button> 
</body> 
</html>

•运行结果如下:
Js放到HTML文件中的哪个位置有什么区别 
•说明是可以运行的。这说明,不止可以放函数名了。

事件绑定方式?
•事件绑定方式常用有两种一是前面介绍的在事件中加入js代码。如:onclick="test();"。这种绑定方式有缺点,就是你要修改,美工已经写好的代码。
•还有一种方式就是我开始代码写的那样,通过id,只需要美工将每个元素都加上id就行。并不需要修改HTML代码。

Javascript 相关文章推荐
jquery 最简单易用的表单验证插件
Feb 27 Javascript
ParseInt函数参数设置介绍
Jan 02 Javascript
JS实现黑色大气的二级导航菜单效果
Sep 18 Javascript
JS鼠标滚动分页效果示例
Jul 05 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
Aug 11 Javascript
使用layui 渲染table数据表格的实例代码
Aug 19 Javascript
js 实现在2d平面上画8的方法
Oct 10 Javascript
详解Angular模板引用变量及其作用域
Nov 23 Javascript
详解基于mpvue微信小程序下载远程图片到本地解决思路
May 16 Javascript
小程序云开发获取不到数据库记录的解决方法
May 18 Javascript
Vue 利用指令实现禁止反复发送请求的两种方法
Sep 15 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 Javascript
使用jQuery避免鼠标双击的解决方案
Aug 21 #Javascript
jquery ready(fn)事件使用介绍
Aug 21 #Javascript
javaScript面向对象继承方法经典实现
Aug 20 #Javascript
Table冻结表头示例代码
Aug 20 #Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 #Javascript
jQuery回车实现登录简单实现
Aug 20 #Javascript
jquery 延迟执行实例介绍
Aug 20 #Javascript
You might like
PHP MemCached 高级缓存应用代码
2010/08/05 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(六)
2014/06/23 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
IE与Firefox下javascript getyear年份的兼容性写法
2007/12/20 Javascript
ASP.NET中基于JQUERY的高性能的TreeView补充
2011/02/23 Javascript
Javascript call和apply区别及使用方法
2013/11/14 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
AngularJS中处理多个promise的方式
2016/02/02 Javascript
javascript函数自动执行常用方法汇总
2016/03/28 Javascript
web打印小结
2017/01/11 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
es6新特性之 class 基本用法解析
2018/05/05 Javascript
JavaScript复制变量三种方法实例详解
2020/01/09 Javascript
微信小程序canvas开发水果老虎机的思路详解
2020/02/07 Javascript
微信小程序清空输入框信息与实现屏幕往上滚动的示例代码
2020/06/23 Javascript
jQuery实现动态加载瀑布流
2020/09/01 jQuery
[51:14]LGD vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.21
2018/08/22 DOTA
[03:43]TI9战队采访——PSG.LGD
2019/08/22 DOTA
浅谈numpy数组的几种排序方式
2017/12/15 Python
Python3实现的爬虫爬取数据并存入mysql数据库操作示例
2018/06/06 Python
Python实现word2Vec model过程解析
2019/12/16 Python
详解Python中pyautogui库的最全使用方法
2020/04/01 Python
浅谈keras 模型用于预测时的注意事项
2020/06/27 Python
基于Python实现简单学生管理系统
2020/07/24 Python
Python字典dict常用方法函数实例
2020/11/09 Python
python 调用Google翻译接口的方法
2020/12/09 Python
预订旅游活动、景点和旅游:GetYourGuide
2019/09/29 全球购物
小学教师管理制度
2014/01/18 职场文书
五年级英语教学反思
2014/01/31 职场文书
《长城和运河》教学反思
2014/04/14 职场文书
公共场所禁烟标语
2014/06/25 职场文书
奥巴马当选演讲稿
2014/09/10 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
2014小学数学教研组工作总结
2014/12/06 职场文书
同意报考公务员证明
2015/06/17 职场文书
学校隐患排查制度
2015/08/05 职场文书