详解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 相关文章推荐
js中eval详解
Mar 30 Javascript
JavaScript之引用类型介绍
Aug 10 Javascript
js数组去重的常用方法总结
Jan 24 Javascript
javascript实现捕捉键盘上按下的键
May 05 Javascript
详细解读AngularJS中的表单验证编程
Jun 19 Javascript
jQuery判断多个input file 都不能为空的例子
Jun 23 Javascript
在for循环中length值是否需要缓存
Jul 27 Javascript
js实时获取并显示当前时间的方法
Jul 31 Javascript
js的各种排序算法实现(总结)
Jul 23 Javascript
关于vuex的学习实践笔记
Apr 05 Javascript
express + jwt + postMan验证实现持久化登录
Jun 05 Javascript
详解使用mocha对webpack打包的项目进行&quot;冒烟测试&quot;的大致流程
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
教你如何用php实现LOL数据远程获取
2014/06/10 PHP
ThinkPHP实现事务回滚示例代码
2014/06/23 PHP
php生成word并下载代码实例
2019/03/15 PHP
javascript 词法作用域和闭包分析说明
2010/08/12 Javascript
基于jquery的使ListNav兼容中文首字拼音排序的实现代码
2011/07/10 Javascript
JS中setInterval、setTimeout不能传递带参数的函数的解决方案
2013/04/28 Javascript
JS实现页面超时后自动跳转到登陆页面
2015/01/19 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
Vue.JS入门教程之列表渲染
2016/12/01 Javascript
微信小程序图片自适应支持多图实例详解
2017/06/21 Javascript
详解node Async/Await 更好的异步编程解决方案
2018/05/10 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
js实现掷骰子小游戏
2019/10/24 Javascript
Javascript摸拟自由落体与上抛运动原理与实现方法详解
2020/04/08 Javascript
在项目vue中使用echarts的操作步骤
2020/09/07 Javascript
记一次vue跨域的解决
2020/10/21 Javascript
[01:21:36]CHAOS vs Alliacne 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Python安装使用命令行交互模块pexpect的基础教程
2016/05/12 Python
全面了解Python的getattr(),setattr(),delattr(),hasattr()
2016/06/14 Python
在cmd中运行.py文件: python的操作步骤
2018/05/12 Python
Python Web程序搭建简单的Web服务器
2019/07/31 Python
用python的turtle模块实现给女票画个小心心
2019/11/23 Python
python进程池实现的多进程文件夹copy器完整示例
2019/11/27 Python
pycharm 中mark directory as exclude的用法详解
2020/02/14 Python
Python爬虫后获取重定向url的两种方法
2021/01/19 Python
美国球鞋寄卖网站:Stadium Goods
2018/05/09 全球购物
彪马土耳其官网:PUMA土耳其
2019/07/14 全球购物
北京华建集团SQL面试题
2014/06/03 面试题
党委书记岗位职责
2013/11/24 职场文书
校园活动策划书范文
2014/01/10 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
承诺函格式模板
2015/01/21 职场文书
员工辞退通知书
2015/04/17 职场文书
创业计划书之校园跑腿公司
2019/09/24 职场文书
创业计划书之淘宝网店
2019/10/08 职场文书
Ruby处理CSV数据方法详解
2022/04/18 Ruby