JS null问题
在学习getElementById()方法的过程中出现了这样一个问题,便想记录下来。
分析问题之前,我们最好还是先来认识一下getElementById()方法。getElementById()方法,接受一个參数。获取元素的ID。假设找到对应的元素则返回该元素的HTMLDivElement对象,假设不存在。则返回null。
我是这样来实现的:
HTML代码:从代码中能够发现,我已经加入了<div id='box'>測试div</id>。
<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM基础</title>
<span style="color:#ff0000;"><script type ="text/javascript" src="demo.js"></script></span>
</head>
<body> <span style="color:#ff0000;"><div id='box'>測试div</id></span> <ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul> </body>
</html>
</span>
JS代码:
<span style="font-size:18px;">var box=document.getElementById('box'); //获取id为box的元素节点
alert(box);</span>
将HTML文件在网页中打开,弹出null的消息框。
正确的显示应该返回HTMLDivElement对象,为什么会出现nul呢?从HTML代码中能够看到。它先运行地是JS。然后才运行HTML,显然是顺序的问题。原因找到了。自然就有应对的方案。在这里教大家两种解决的方法:
1、将script调用标签移到html末尾。
修改HTML代码:
<span style="font-size:18px;"><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>DOM基础</title>
</head>
<body> <span style="color:#ff0000;"><div id='box'>測试div</id></span> <ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul> </body>
</html>
<span style="color:#ff0000;"><script type ="text/javascript" src="demo.js"></script></span></span>
2、使用onload事件来处理
修改Js代码
<span style="font-size:18px;">window.onload=function(){
var box=document.getElementById('box'); //获取id为box的元素节点
alert(box); };</span>
以上两种方法都能正确返回HTMLDivElement对象。
但另一个显示的问题。
火狐、谷歌等浏览器等都会显示[object HTMLDivElement],但只有IE浏览器会仅仅显示[object]。这是由于IE的全部对象都是以COM对象的形式实现的。
小结:
JS的知识点非常碎。假设仅仅是往前学而不加整理和总结。那么学着前面的知识,后面的知识就会忘掉。像上文总结的这样一个小问题,假设不记录总结,那么过不了多久就再也想不起来了。
JS null问题的更多相关文章
- js null表示没有取到html中的元素 undenfind 表示没有被赋值
js null表示没有取到html中的元素 undenfind 表示没有被赋值
- js null和undefined
在JavaScript开发中,被人问到:null与undefined到底有啥区别? 一时间不好回答,特别是undefined,因为这涉及到undefined的实现原理. 总所周知:null == un ...
- JS Null 空 判断
JS判断对象是否为空 https://www.cnblogs.com/mountain-mist/articles/1600995.html http://www.cftea.com/c/2007/0 ...
- 你所不知道的 JS: null , undefined, NaN, true==1=="1",false==0=="",null== undefined
1 1 1 === 全相等(全部相等) == 值相等(部分相等) demo: var x=0; undefined var y=false; undefined if(x===y){ console ...
- js null 和 undefined
undefined是一个特殊类型,null本质上是一个对象 typeof undefined//"undefined"typeof null//"object" ...
- js null, undefined, NaN, ‘’, false, 0, ==, === 全验证
<html> <head> <meta charset="utf-8" /> </head> <body> <in ...
- JS——null
变量被赋值为null,目的往往是为了销毁这个对象: var n1 = 1; n1 = null;
- js null和{}区别
{}是一个不完全空的对象,因为他的原型链上还有Object呢,而null就是完全空的对象,啥也没有,原型链也没有,所以null instanceof Object === false;[]就更不用说了 ...
- 将css和js缓存到localStorage缓存,提高网页响应速度
适用于小站点,这很极致,很快速~~ /** * Created by SevenNight on 2016/9/21 0021. * 插件功能:使用localStorage缓存js和css文件,减少h ...
随机推荐
- JavaScript学习总结(6)——js弹出框、对话框、提示框、弹窗总结
一.JS的三种最常见的对话框 [javascript] view plaincopy //====================== JS最常用三种弹出对话框 =================== ...
- Zorka和zico实现不同主机之间的交互
之前参考下面的两篇博文进行了zorka以及其collector端zico的配置. http://quyuxjtu.sinaapp.com/?p=532 http://quyuxjtu.sinaapp. ...
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形
//编写函数实现库函数atoi.把字符串转换成整形 #include <stdio.h> #include <string.h> int my_atoi(const char ...
- 使用Spring框架的好处
转自:https://www.cnblogs.com/hoobey/p/6032506.html 在SSH框假中spring充当了管理容器的角色.我们都知道Hibernate用来做持久层,因为它将JD ...
- 06 Jenkins自动化构建
• 在之前的freestyle任务基础上,实现构建功能• 检查maven环境• 构建命令:mvn clean compile• 归档构建产物• 演练参数的使用• 通过配置Trigger进行自动构建• ...
- es6常用功能与异步详解(JS高级面试题)
callback hell方法的使用 可读性不友好 function loadImg(src,callback,fail){ var img = document.createElement('img ...
- Jenkins学习总结(1)——Jenkins详细安装与构建部署使用教程
Jenkins是一个开源软件项目,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.Jenkins是基于Java开发的一种持续集成工具,用于监控持续重复的工作,功能包括: 1.持续的软件版本发 ...
- Android Material风格的应用(五)--CollapsingToolbar
Collapsing Toolbar Android Material风格的应用(一)--AppBar TabLayoutAndroid Material风格的应用(二)--RecyclerViewA ...
- css中hack是什么
css中hack是什么 一.总结 1.CSS hack:由于不同厂商的浏览器,比如Internet Explorer,Safari,Mozilla Firefox,Chrome等,或者是同一厂商的浏览 ...
- 软件——机器学习与Python,输入输出的用法
转自:http://www.cnblogs.com/graceting/p/3875438.html 输入很简单 x = input("Please input x:") Plea ...