js中的DOM
js的DOM是什么:
DOM(即 Document Object Mode) 是 W3C(万维网联盟)的标准。
DOM 定义了访问 HTML 和 XML 文档的标准:“W3C 文档对象模型 (DOM) 是中立于平台和语言的接口,它允许程序和脚本动态地访问和更新文档的内容、结构和样式。”
W3C DOM 标准被分为 3 个不同的部分:
核心 DOM - 针对任何结构化文档的标准模型
XML DOM - 针对 XML 文档的标准模型
HTML DOM - 针对 HTML 文档的标准模型
其中,在 HTML DOM 中,所有事物都是节点。DOM 是被视为节点树的 HTML。
根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点:
整个文档是一个文档节点
每个 HTML 元素是元素节点
HTML 元素内的文本是文本节点
每个 HTML 属性是属性节点
注释是注释节点
HTML DOM 将 HTML 文档视作树结构。这种结构被称为节点树。通过 HTML DOM,树中的所有节点均可通过 JavaScript 进行访问。所有 HTML 元素(节点)均可被修改,也可以创建或删除节点。
DOM 处理中的常见错误是希望元素节点包含文本。
举个栗子:<title>DOM 教程</title>,元素节点 <title>,包含值为 "DOM 教程" 的文本节点。
可通过节点的 innerHTML 属性来访问文本节点的值。
一些常用的 HTML DOM 方法:
getElementById(id) - 获取带有指定 id 的节点(元素)
例:
<div>
<p id="p1"></p>
</div>
<script>
var p = document.getElementById('p1');
</script>
appendChild(node) - 插入新的子节点(元素)
<div>
<p id="p1"></p>
</div>
<script>
//创建p标签
var p = document.createElement('p');
var div = document.getElementsByTagName('div')[0];
var sl = div.appendChild(p);
</script>
remove() - 删除节点(元素)
例:
<div>
<p id="p1"></p>
</div>
<script>
var p = document.getElementsByTagName('p');
p.remove();
</script>
一些常用的 HTML DOM 属性:
innerHTML - 节点(元素)的文本值
parentNode - 节点(元素)的父节点
childNodes - 节点(元素)的子节点
attributes - 节点(元素)的属性节点
DOM操作示例
<html>
<body>
<p id="p1">Hello World!</p>
<script>
document.getElementById("p1").innerHTML="New text!";
//内容变更为new text
document.getElementById("p1").style.color="blue";
//蓝色
</script>
</body>
</html>