详解JavaScript操作HTML DOM的基本方式


Posted in Javascript onOctober 21, 2015

通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素。
HTML DOM (文档对象模型)
当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model)。
HTML DOM 模型被构造为对象的树:
详解JavaScript操作HTML DOM的基本方式
通过可编程的对象模型,JavaScript 获得了足够的能力来创建动态的 HTML。

  • JavaScript 能够改变页面中的所有 HTML 元素
  • JavaScript 能够改变页面中的所有 HTML 属性
  • JavaScript 能够改变页面中的所有 CSS 样式
  • JavaScript 能够对页面中的所有事件做出反应

查找 HTML 元素
通常,通过 JavaScript,您需要操作 HTML 元素。
为了做到这件事情,您必须首先找到该元素。有三种方法来做这件事:

  • 通过 id 找到 HTML 元素
  • 通过标签名找到 HTML 元素
  • 通过类名找到 HTML 元素
  • 通过 id 查找 HTML 元素

在 DOM 中查找 HTML 元素的最简单的方法,是通过使用元素的 id。
本例查找 id="intro" 元素:
实例

var x=document.getElementById("intro");

如果找到该元素,则该方法将以对象(在 x 中)的形式返回该元素。
如果未找到该元素,则 x 将包含 null。
通过标签名查找 HTML 元素
本例查找 id="main" 的元素,然后查找 id="main" 元素中的所有 <p> 元素:
实例

var x=document.getElementById("main");
var y=x.getElementsByTagName("p");

通过类名找到 HTML 元素
本例通过 getElementsByClassName 函数来查找 class="intro" 的元素:
实例

var x=document.getElementsByClassName("intro");

改变 HTML
HTML DOM 允许 JavaScript 改变 HTML 元素的内容。
改变 HTML 输出流
JavaScript 能够创建动态的 HTML 内容:
今天的日期是: Wed Oct 21 2015 14:43:25 GMT+0800 (中国标准时间)
在 JavaScript 中,document.write() 可用于直接向 HTML 输出流写内容。
实例

<!DOCTYPE html>
<html>
<body>

<script>
document.write(Date());
</script>

</body>
</html>

lamp 绝对不要在文档加载完成之后使用 document.write()。这会覆盖该文档。

改变 HTML 内容
修改 HTML 内容的最简单的方法时使用 innerHTML 属性。
如需改变 HTML 元素的内容,请使用这个语法:
document.getElementById(id).innerHTML=new HTML
本例改变了 <p>元素的内容:
实例

<html>
<body>

<p id="p1">Hello World!</p>

<script>
document.getElementById("p1").innerHTML="New text!";
</script>

</body>
</html>

本例改变了 <h1> 元素的内容:
实例

<!DOCTYPE html>
<html>
<body>

<h1 id="header">Old Header</h1>

<script>
var element=document.getElementById("header");
element.innerHTML="New Header";
</script>

</body>
</html>

实例讲解:

  • 上面的 HTML 文档含有 id="header" 的 <h1> 元素
  • 我们使用 HTML DOM 来获得 id="header" 的元素
  • JavaScript 更改此元素的内容 (innerHTML)

改变 HTML 属性
如需改变 HTML 元素的属性,请使用这个语法:

document.getElementById(id).attribute=new value

本例改变了 <img> 元素的 src 属性:
实例

<!DOCTYPE html>
<html>
<body>

<img id="image" src="smiley.gif">

<script>
document.getElementById("image").src="landscape.jpg";
</script>

</body>
</html>

实例讲解:

  • 上面的 HTML 文档含有 id="image" 的 <img> 元素
  • 我们使用 HTML DOM 来获得 id="image" 的元素
  • JavaScript 更改此元素的属性(把 "smiley.gif" 改为 "landscape.jpg")
Javascript 相关文章推荐
Ucren Virtual Desktop V2.0
Nov 07 Javascript
JavaScript CSS修改学习第五章 给“上传”添加样式
Feb 19 Javascript
jQuery中parentsUntil()方法用法实例
Jan 07 Javascript
AngularJS中的指令全面解析(必看)
May 20 Javascript
vue与bootstrap实现时间选择器的示例代码
Aug 26 Javascript
vue router嵌套路由在history模式下刷新无法渲染页面问题的解决方法
Jan 25 Javascript
Vue.js单向绑定和双向绑定实例分析
Aug 14 Javascript
浅谈vue同一页面中拥有两个表单时,的验证问题
Sep 18 Javascript
vue中将html字符串转换成html后遇到的问题小结
Dec 10 Javascript
浅谈webpack性能榨汁机(打包速度优化)
Jan 09 Javascript
使用Vue实现移动端左滑删除效果附源码
May 16 Javascript
Vue + Scss 动态切换主题颜色实现换肤的示例代码
Apr 27 Javascript
JavaScript函数的调用以及参数传递
Oct 21 #Javascript
Java中Timer的用法详解
Oct 21 #Javascript
JS实现的竖向折叠菜单代码
Oct 21 #Javascript
JS基于Mootools实现的个性菜单效果代码
Oct 21 #Javascript
纯javascript实现自动发送邮件
Oct 21 #Javascript
JS实现Fisheye效果动感放大菜单代码
Oct 21 #Javascript
在javascript中随机数 math random如何生成指定范围数值的随机数
Oct 21 #Javascript
You might like
德生PL990的分析评价
2021/03/02 无线电
PHP date函数参数详解
2006/11/27 PHP
php 禁止页面缓存输出
2009/01/07 PHP
使用phpQuery采集网页的方法
2013/11/13 PHP
浅析PHP中call user func()函数及如何使用call user func调用自定义函数
2015/11/05 PHP
确保Laravel网站不会被嵌入到其他站点中的方法
2019/10/18 PHP
THREE.JS入门教程(2)着色器-上
2013/01/24 Javascript
关于js数组去重的问题小结
2014/01/24 Javascript
jQuery动态背景图片效果实现方法
2015/07/03 Javascript
jQuery使用$.ajax提交表单完整实例
2015/12/11 Javascript
Webpack 实现 AngularJS 的延迟加载
2016/03/02 Javascript
jQuery.Form上传文件操作
2017/02/05 Javascript
微信小程序 监听手势滑动切换页面实例详解
2017/06/15 Javascript
深入理解vue Render函数
2017/07/19 Javascript
详解利用 Vue.js 实现前后端分离的RBAC角色权限管理
2017/09/15 Javascript
基于dataset的使用和图片延时加载的实现方法
2017/12/11 Javascript
Node.js爬取豆瓣数据实例分析
2018/03/05 Javascript
javascript设计模式 ? 简单工厂模式原理与应用实例分析
2020/04/09 Javascript
浅谈es6中的元编程
2020/12/01 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
windows下ipython的安装与使用详解
2016/10/20 Python
Python金融数据可视化汇总
2017/11/17 Python
Python格式化输出%s和%d
2018/05/07 Python
flask框架配置mysql数据库操作详解
2019/11/29 Python
pycharm第三方库安装失败的问题及解决经验分享
2020/05/09 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
高级3D打印市场:Gambody
2019/12/26 全球购物
函数只定义了一次, 调用了一次, 但编译器提示非法重定义了-什么问题?
2014/10/03 面试题
校园自助餐厅的创业计划书
2013/12/26 职场文书
投资意向书范本
2014/04/01 职场文书
人力资源管理专业自荐书
2014/07/07 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
雷锋的观后感
2015/06/10 职场文书
环保宣传语大全
2015/07/13 职场文书
红领巾广播站广播稿
2015/08/19 职场文书
Pytest中skip skipif跳过用例详解
2021/06/30 Python