文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

js中document.getElementById(id)的具体用法

2023-05-17 06:06

关注

1.document.getElementById(id)是javascript中访问某个元素的方法。

2.括号中的id是用来标识某个元素的。

3.具体用法:

例如:通过指定的id获取某个元素,并改变其内容

<html>
<body>
 
<h1>这是一个网图</h1>
 
<p id="demo">我的第一个段落</p>
 
<script>
document.getElementById("demo").innerHTML="我的一段 JavaScript代码";
</script>
 
</body>
</html>

这段代码的操作为获取id为:demo的元素,并修改他为:我的有单javascript代码 

document.getElementById()报错处理

在Microsoft Edge和Google Chrome报错:

Uncaught TypeError: Cannot set properties of null (setting 'innerHTML')

在Firefox报错:

Uncaught TypeError: document.getElementById(...) is null

<!DOCTYPE html>
<html  lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width" /> 
  <title>测试</title>
</head>
<body>
<script>
  document.getElementById('app').innerHTML= "str";
</script>
<h3 id="app"></h3>
</body>
</html>

保存文件名为:错误发生.html

用Microsoft Edge或Google Chrome浏览器打开运行后,再按下F12键可查看到报错信息用浏览器打开,就会看到错误:

用Firefox浏览器打开运行后,再按下F12键可查看到报错信息用浏览器打开,就会看到错误:

document.getElementById()失效的原因分析原因

浏览器加载HTML文档时,会将HTML文档解析为一个树形结构,称为DOM树,代码的执行顺序是自上而下依次执行,当执行到innerHTML这一行代码时,他并没有加载到下面的DOM结构,就会报错无法读取HTML。

简单地说,就是body还没有加载,无法获取DOM元素,  获取不到节点所在的节点。

解决方法

法一、 document.getElementById()需要放在你这个id位置的后面,如果你把<script>标签放在head部分的话就可能会出现问题,因为document.getElementById()的使用需要把函数放在id的后面。所以,如果我们想避免这个问题,我们把<script>标签放在<body>标签的最后面或</body>标签之后。并且id要完全一样,大小写有差别也不行。

修改后源码如下:

<!DOCTYPE html>
<html  lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width" /> 
  <title>测试</title>
</head>
<body>
<h3 id="app"></h3>
<script>
   document.getElementById('app').innerHTML= "这是一段文本!";
</script>
</body>
</html>

简要说明,参见下图:

保存 文件名为:错误修改.html,用浏览器打开,正常运行显示如下:

法二、还可以如下修改

将document.getElementById()放到函数中,再调用函数。

这里使用HTML onload 事件调用这个函数,源码如下:

<!DOCTYPE html>
<html  lang="zh">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width" /> 
  <title>测试</title>
<script>
function funA(){
   document.getElementById('app').innerHTML= "这是一段文本!";
}
</script>
</head>
<body onload="funA()">
<h3 id="app"></h3>
</body>
</html>

简要说明,参见下图:

 用浏览器运行显示效果和前面的一样。

附、document的getElementById 方法(method) document.getElementById - Web API 接口参考 | MDN

到此这篇关于js中document.getElementById(id)的具体用法的文章就介绍到这了,更多相关document.getElementById(id)用法内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-前端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯