文档对象模型(Document Object Model, DOM)是W3C提出的用于访问和修改文档的接口.
JavaScript设计的初衷是为Web提供交互功能,它通过DOM接口来访问和修改文档.
DOM标准被分为3个部分:
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
DOM节点
在DOM中Html文档是一个文档节点, 在Js中可以使用document
对象来访问.
Html文档是以树状结构组织的, 每个标签都是一个节点, 树的根节点为<html>
标签.
Hello Hello World!
注意<p>Hello World!</p>
其中的文本Hello World!
在DOM中被认为是一个文本子节点.
访问节点
DOM标准中提供了3种访问节点的方式:
getElementById
getElementsByTagName
getElementsByClassName
Id可以精确定位元素, TagName和ClassName只能定位一组元素.
DOM中的节点分为Node包括Element, Comment, Documnet等类型, 但是我们主要关心Element.
Hello World!
innerHTML属性是节点开始标签和结尾标签之间的HTML代码, 修改该属性可以修改节点的子树功能强大.
使用innerHTML属性直接编写HTML源码,需要注意防范XSS攻击.
节点的innerText属性会对字符串进行HTML编码, 保证无法设置HTML标签更为安全.
插入节点
appendChild方法可以将节点插入到节点子树的最后一个:
Python
若该节点不存在则直接插入, 若存在则进行替换.
insertBefore方法可以在指定节点前插入节点:
Python
删除节点
removeChild可以用于删除节点:
Python
javaScript
操作表单
HTML表单的输入控件主要有:
文本框
<input type="text">
用于输入文本;口令框
<input type="password">
用于输入口令;单选框
<input type="radio">
用于选择一项;复选框
<input type="checkbox">
用于选择多项;下拉框
<select>
用于选择一项;隐藏文本
<input type="hidden">
用户不可见但表单提交时会把隐藏文本发送到服务器;
对于text,password, hidden, select型的输入框只需要通过DOM访问input元素的value属性即可得到输入.
对于redio和checkbox需要检查其checked
属性
Js还可以通过<form>
元素的submit()
方法提交表单:
DOM事件
用户事件
事件机制允许当特定事件发生时调用函数进行响应:
被点击onclick
表单提交onsubmit
输入内容改变onchanged
界面被加载onload
更多的事件请参见
onclick事件允许对点击事件进行响应:
onsubmit事件通常用于对输入的校验:
时钟事件
setTimeout
设定在一段时间间隔之后再执行代码:
第一个参数为String形式的Js代码, 第二个参数是以毫秒为单位的时间间隔.
setTimeout
设定的时钟事件只触发一次后停止.
clearTimeout
可以取消时钟事件:
setInterval
方法与setTimeout
方法类似,但是会不停地触发事件而非一次之后停止:
clearInterval
可以取消时钟事件:
var t = setInterval('display()', 1000)clearInterval(t)