详解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 相关文章推荐
在IE中调用javascript打开Excel的代码(downmoon原作)
Apr 02 Javascript
利用google提供的API(JavaScript接口)获取网站访问者IP地理位置的代码详解
Jul 24 Javascript
一个js导致的jquery失效问题的解决方法
Nov 27 Javascript
javascript获取xml节点的最大值(实现代码)
Dec 11 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
Dec 13 Javascript
小白谈谈对JS原型链的理解
May 03 Javascript
浅析jquery unbind()方法移除元素绑定的事件
May 24 Javascript
Angular.js基础学习之初始化
Mar 10 Javascript
Redux 和 Mobx的选择问题:让你不再困惑!
Sep 18 Javascript
js prototype和__proto__的关系是什么
Aug 23 Javascript
three.js利用卷积法如何实现物体描边效果
Nov 27 Javascript
vue项目实现分页效果
Mar 24 Vue.js
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
教你如何把一篇文章按要求分段
2006/10/09 PHP
php 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php读取csv文件并输出的方法
2015/03/14 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
Aliyun Linux 编译安装 php7.3 tengine2.3.2 mysql8.0 redis5的过程详解
2020/10/20 PHP
jQuery与其它库冲突的解决方法
2010/06/25 Javascript
利用jquery的获取JS文件中的字符串内容
2012/02/14 Javascript
容易造成JavaScript内存泄露几个方面
2014/09/04 Javascript
调试JavaScript中正则表达式中遇到的问题
2015/01/27 Javascript
详解JavaScript跨域总结与解决办法
2016/10/31 Javascript
详解如何较好的使用js
2016/12/16 Javascript
boostrapTable的refresh和refreshOptions区别浅析
2017/01/22 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
解决Vue中 父子传值 数据丢失问题
2019/08/27 Javascript
微信小程序scroll-view的滚动条设置实现
2020/03/02 Javascript
[01:08:57]2014 DOTA2国际邀请赛中国区预选赛 5 23 CIS VS LGD第二场
2014/05/24 DOTA
让python 3支持mysqldb的解决方法
2017/02/14 Python
Python实现发送与接收邮件的方法详解
2018/03/28 Python
django admin 后台实现三级联动的示例代码
2018/06/22 Python
Python 利用pydub库操作音频文件的方法
2019/01/09 Python
python爬虫 基于requests模块的get请求实现详解
2019/08/20 Python
python将字典内容写入json文件的实例代码
2020/08/12 Python
python中append函数用法讲解
2020/12/11 Python
用纯css3和html制作泡沫对话框实现代码
2013/03/21 HTML / CSS
Intersport西班牙:在线体育商店
2019/11/06 全球购物
电子商务专业自我鉴定
2013/12/18 职场文书
业务部经理岗位职责
2014/01/04 职场文书
十一酒店活动方案
2014/02/20 职场文书
yy婚礼主持词
2014/03/14 职场文书
产品质量保证书
2014/04/29 职场文书
大学生就业指导课心得体会
2016/01/15 职场文书
小学2016年第十八届推普周活动总结
2016/04/05 职场文书
python中sqllite插入numpy数组到数据库的实现方法
2021/06/21 Python
详解Java线程池是如何重复利用空闲线程的
2021/06/26 Java/Android
win11怎么用快捷键锁屏? windows11锁屏的几种方法
2021/11/21 数码科技