详解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 的应用开发初探(mootools)
Dec 19 Javascript
兼容IE与firefox火狐的回车事件(js与jquery)
Oct 20 Javascript
一些主流JS框架中DOMReady事件的实现小结
Feb 12 Javascript
jquery html动态生成select标签出问题的解决方法
Nov 20 Javascript
javascript委托(Delegate)blur和focus用法实例分析
May 26 Javascript
Bootstrap Paginator分页插件使用方法详解
May 30 Javascript
Ajax使用原生态JS验证用户名是否存在
May 26 Javascript
js实现上下左右弹框划出效果
Mar 08 Javascript
JS伪继承prototype实现方法示例
Jun 20 Javascript
Vue.js 中的 v-cloak 指令及使用详解
Nov 19 Javascript
mpvue微信小程序多列选择器用法之省份城市选择的实现
Mar 07 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 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
html中select语句读取mysql表中内容
2006/10/09 PHP
Php 构造函数construct的前下划线是双的_
2009/12/08 PHP
PHP 命令行参数详解及应用
2011/05/18 PHP
ThinkPHP中的三大自动简介
2014/08/22 PHP
THINKPHP3.2使用soap连接webservice的解决方法
2017/12/13 PHP
PHP基于phpqrcode类生成二维码的方法示例详解
2020/08/07 PHP
Jquery进度条插件 Progress Bar小问题解决
2011/07/12 Javascript
利用javascript打开模态对话框(示例代码)
2014/01/11 Javascript
QQ空间顶部折页撕开效果示例代码
2014/06/15 Javascript
浅谈Node.js中的定时器
2015/06/18 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
jquery横向纵向鼠标滚轮全屏切换
2017/02/27 Javascript
js a标签点击事件
2017/03/30 Javascript
详解JavaScript中的六种错误类型
2017/09/21 Javascript
vue.js如何将echarts封装为组件一键使用详解
2017/10/10 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
JQuery中的常用事件、对象属性与使用方法分析
2019/12/23 jQuery
微信小程序如何通过用户授权获取手机号(getPhoneNumber)
2020/01/21 Javascript
微信小程序实现翻牌抽奖动画
2020/09/21 Javascript
vue 数据遍历筛选 过滤 排序的应用操作
2020/11/17 Javascript
python抓取网页中图片并保存到本地
2015/12/01 Python
Python的几个高级语法概念浅析(lambda表达式闭包装饰器)
2016/05/28 Python
python中logging模块的一些简单用法的使用
2019/02/22 Python
Python生成个性签名图片获取GUI过程解析
2019/12/16 Python
PyQt5 界面显示无响应的实现
2020/03/26 Python
浅析Python的命名空间与作用域
2020/11/25 Python
Python tkinter之Bind(绑定事件)的使用示例
2021/02/05 Python
CSS3字体效果的设置方法小结
2016/06/13 HTML / CSS
css3通过scale()、rotate()实现放大、旋转
2020/03/19 HTML / CSS
英国最好的包装供应商:Priory Direct
2019/12/17 全球购物
大学生就业自我鉴定
2013/10/26 职场文书
物业保安员岗位职责制度
2014/01/30 职场文书
数控专业自荐书范文
2014/03/16 职场文书
海飞丝的广告词
2014/03/20 职场文书
机动车登记业务委托书
2014/10/08 职场文书
mysql 体系结构和存储引擎介绍
2022/05/06 MySQL