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 相关文章推荐
简单的js分页脚本
May 21 Javascript
JavaScript中也使用$美元符号来代替document.getElementById
Jun 19 Javascript
javascript循环变量注册dom事件 之强大的闭包
Sep 08 Javascript
纯js网页画板(Graphics)类简介及实现代码
Dec 24 Javascript
JavaScript中for-in遍历方式示例介绍
Feb 11 Javascript
js+css简单实现网页换肤效果
Dec 29 Javascript
js Canvas绘制圆形时钟教程
Feb 06 Javascript
原生js仿浏览器滚动条效果
Mar 02 Javascript
AngularJS集合数据遍历显示的实例
Dec 27 Javascript
JavaScript setInterval()与setTimeout()计时器
Dec 27 Javascript
js实现轮播图效果 z-index实现轮播图
Jan 17 Javascript
Vue全家桶入门基础教程
May 14 Vue.js
使用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
全国FM电台频率大全 - 11 浙江省
2020/03/11 无线电
在WIN98下以apache模块方式安装php
2006/10/09 PHP
php防止用户重复提交表单
2015/11/02 PHP
PHP+JS实现的商品秒杀倒计时用法示例
2016/11/15 PHP
PHP 并发场景的几种解决方案
2019/06/14 PHP
Prototype1.5 rc2版指南最后一篇之Position
2007/01/10 Javascript
用Javascript实现Sleep暂停功能代码
2010/09/03 Javascript
javascript正则表达式中参数g(全局)的作用
2010/11/11 Javascript
解析DHTML,JavaScript,DOM,BOM以及WEB标准的描述
2013/06/19 Javascript
jquery中通过父级查找进行定位示例
2013/06/28 Javascript
使用jQuery获得内容以及内容的属性
2015/02/26 Javascript
jQuery实现的在线答题功能
2015/04/12 Javascript
jquery easyui datagrid实现增加,修改,删除方法总结
2016/05/25 Javascript
教你快速搭建Node.Js服务器的方法教程
2017/03/30 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
vue实现仿淘宝结账页面实例代码
2017/11/08 Javascript
node中的cookie的具体使用
2018/09/13 Javascript
vue  自定义组件实现通讯录功能
2018/09/30 Javascript
微信小程序事件对象中e.target和e.currentTarget的区别详解
2019/05/08 Javascript
JS如何实现网站中PC端和手机端自动识别并跳转对应的代码
2020/01/08 Javascript
JS实现动态无缝轮播
2020/01/11 Javascript
javascript将16进制的字符串转换为10进制整数hex
2020/03/05 Javascript
基于脚手架创建Vue项目实现步骤详解
2020/08/03 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python+numpy按行求一个二维数组的最大值方法
2019/07/09 Python
python中open函数的基本用法示例
2019/09/07 Python
Pycharm最新激活码2019(推荐)
2019/12/31 Python
利用Python实现某OA系统的自动定位功能
2020/05/27 Python
一些关于python 装饰器的个人理解
2020/08/31 Python
德国旅行、体验和活动的预订平台:Watado
2019/12/04 全球购物
绿色家庭事迹材料
2014/05/01 职场文书
消防安全宣传标语
2014/06/07 职场文书
班级学雷锋活动总结
2014/06/26 职场文书
乡镇四风对照检查材料
2014/08/31 职场文书
2014年党的群众路线学习心得体会
2014/11/05 职场文书
【海涛教你打DOTA】黑鸟第一视角解说
2022/04/01 DOTA