详解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 相关文章推荐
javascript 当前日期加(天、周、月、年)
Aug 09 Javascript
用于节点操作的API,颠覆原生操作HTML DOM节点的API
Dec 11 Javascript
JQuery将文本转化成JSON对象需要注意的问题
May 09 Javascript
js弹出窗口之弹出层的小例子
Jun 17 Javascript
javascript结合canvas实现图片旋转效果
May 03 Javascript
AngularJS 2.0入门权威指南
Oct 08 Javascript
jQuery之动画效果大全
Nov 09 Javascript
js中作用域的实例解析
Mar 16 Javascript
socket.io学习教程之深入学习篇(三)
Apr 29 Javascript
详解vue-element Tree树形控件填坑路
Mar 26 Javascript
JS 封装父页面子页面交互接口的实例代码
Jun 25 Javascript
浅谈对于“不用setInterval,用setTimeout”的理解
Aug 28 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
使用Smarty 获取当前日期时间和格式化日期时间的方法详解
2013/06/18 PHP
PHP实现mysqli批量执行多条语句的方法示例
2017/07/22 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
JavaScript定义类或函数的几种方式小结
2011/01/09 Javascript
JavaScript 高级篇之闭包、模拟类,继承(五)
2012/04/07 Javascript
dedecms页面如何获取会员状态的实例代码
2016/03/15 Javascript
jQuery制作网页版选项卡
2016/07/28 Javascript
JS实现颜色梯度与渐变效果完整实例
2016/12/30 Javascript
JS简单获取当前日期和农历日期的方法
2017/04/17 Javascript
js实现分页功能
2017/05/24 Javascript
JavaScript实现树的遍历算法示例【广度优先与深度优先】
2017/10/26 Javascript
WebSocket的通信过程与实现方法详解
2018/04/29 Javascript
使用json-server简单完成CRUD模拟后台数据的方法
2018/07/12 Javascript
bootstrap下拉框动态赋值方法
2018/08/10 Javascript
JS实现Cookie读、写、删除操作工具类示例
2018/08/28 Javascript
详解VUE前端按钮权限控制
2019/04/26 Javascript
详解es6新增数组方法简便了哪些操作
2019/05/09 Javascript
Vue利用Blob下载原生二进制数组文件
2019/09/25 Javascript
Vue实现剪贴板复制功能
2019/12/31 Javascript
jquery实现手风琴案例
2020/05/04 jQuery
js中!和!!的区别与用法
2020/05/09 Javascript
Element Backtop回到顶部的具体使用
2020/07/27 Javascript
在pytorch中为Module和Tensor指定GPU的例子
2019/08/19 Python
Python箱型图处理离群点的例子
2019/12/09 Python
python如何实现读取并显示图片(不需要图形界面)
2020/07/08 Python
Python urlopen()参数代码示例解析
2020/12/10 Python
HTML5实现应用程序缓存(Application Cache)
2020/06/16 HTML / CSS
Yves Rocher捷克官方网站:植物化妆品的创造者
2019/07/31 全球购物
怎样比较两个类型为String的字符串
2016/08/17 面试题
同步和异步有何异同,在什么情况下分别使用他们
2013/04/09 面试题
十佳护士获奖感言
2014/02/18 职场文书
亲子运动会的活动方案
2014/08/17 职场文书
新闻学专业职业生涯规划范文:我的人生我做主
2014/09/12 职场文书
Win11电源已接通但未充电怎么办?Win11电源已接通未充电的解决方法
2022/04/05 数码科技
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL