DOM

DOM(Domcument Object Model)

  1. 是万维网联盟(W3C)的标准。
  2. 定义了访问html和xml文档的标准:"文档对象模型(DOM)是中立平台和语言的接口。允许程序和脚本动态的访问和更新文档内容、结构和样式。"
    分三部分:
  • DOM——针对任何文档的标准模型
  • XML DOM——针对XML文档
  • HTML DOM——针对HTML

XML DOM

 XML DOM 定义了所有 XML 元素的对象和属性,以及访问它们的方法。

HTML DOM

 HTML的标准对象模型,标准编程接口,W3C标准。
 定义了所有html元素的对象和属性。以及访问他们的方法。(是关于获取、修改、添加或删除html的标准)

DOM节点

HTML 文档中的所有内容都是节点:

  • 整个文档是一个文档节点
  • 每个 HTML 元素是元素节点
  • HTML 元素内的文本是文本节点
  • 每个 HTML 属性是属性节点
  • 注释是注释节点

HTML DOM方法

——可以在节点(html)上执行的动作。
编程接口
通过JavaScript(及其他编程语言)对齐访问。
元素为对象,编程接口则是对象方法和属性。
方法:内够执行的动作。(添加或修改元素)
属性:能够获取或设置的值。(节点名称或内容)。
___________________________
getElementById()方法:返回带有指定id的元素。
___________________________
HTML DOM对象-方法和属性
一些常用的 HTML DOM 方法:

  • getElementById(id) - 获取带有指定 id 的节点(元素)

  • appendChild(node) - 插入新的子节点(元素)

  • removeChild(node) - 删除子节点(元素)
    一些常用的 HTML DOM 属性:

  • innerHTML - 节点(元素)的文本值
    +parentNode - 节点(元素)的父节点

  • childNodes - 节点(元素)的子节点

  • attributes - 节点(元素)的属性节点

DOM对象方法

方法 描述
getElementById() 返回带有指定 ID 的元素。
getElementsByTagName() 返回包含带有指定标签名称的所有元素的节点列表(集合/节点数组)。
getElementsByClassName() 返回包含带有指定类名的所有元素的节点列表。
appendChild() 把新的子节点添加到指定节点。
removeChild() 删除子节点。
replaceChild() 替换子节点。
insertBefore() 在指定的子节点前面插入新的子节点。
createAttribute() 创建属性节点。
createElement() 创建元素节点。
createTextNode() 创建文本节点。
getAttribute() 返回指定的属性值。
setAttribute() 把指定属性设置或修改为指定的

属性

innerHTML属性:获取元素内容

//获取id="intro"的<p>元素的innerHTML
<html>
<body>
<p id="intro">Hello World!</p>
<script>
var txt=document.getElementById("intro").innerHTML;
document.write(txt);
</script>
</body>
</html>

nodeName属性:规定节点名称

  • nodeName 是只读的
  • 元素节点的 nodeName 与标签名相同
  • 属性节点的 nodeName 与属性名相同
  • 文本节点的 nodeName 始终是 #text
  • 文档节点的 nodeName 始终是 #document
    nodeValue属性:规定节点的值。
  • 元素节点的 nodeValue 是 undefined 或 null
  • 文本节点的 nodeValue 是文本本身
  • 属性节点的 nodeValue 是属性值

获取值实例

<html>
<body>

<p id="intro">Hello World!</p>

<script type="text/javascript">
x=document.getElementById("intro");
document.write(x.firstChild.nodeValue);
</script>

</body>
</html>

nodeType属性:返回类型。
重要节点类型:

元素类型 NodeType
元素 1
属性 2
文本 3
注释 8
文档 9

访问

方式(1):getElementById() 方法
语法:

node.getElementById("id");

实例:

document.getElementById("intro");//id="intro"的元素

方式(2):getElementsByTagName() 方法
语法:

node.getElementsByTagName("tagname");

实例:

document.getElementsByTagName("p");//获取文档所有<p>元素的列表
document.getElementById("mian").getElementByTagName("p");

方式(3): getElementsByClassName()方法
语法:

docuement.getElementByClassName("intro");//带有相同类名的所有HTML元素(包含class="intro"的所有元素列表)

注释:在Inter Explorer 5,6,7,8中无效

修改

修改元素

  • 改变html内容
  • 改变css样式
  • 改变html属性
  • 创建新的html元素
  • 删除已有的html元素
  • 改变事件(处理程序)

创建内容(改变一个

元素的 HTML 内容)

<html>
<body>

<p id="p1">Hello World!</p>

<script>
document.getElementById("p1").innerHTML="New text!";
</script>

</body>
</html>

改变样式

<html>

<body>
<p id="p2">Hello world!</p>

<script>
document.getElementById("p2").style.color="blue";
</script>

</body>
</html>

添加新元素(必须先创建该元素(接点),然后把它追加都爱已有的元素上)

<div id="d1">
<p id="p1">This is a prograph.</p>
<p id="p2">This is another pargraph.</p>
</div>
<script>
var para= document.createElement("p");
var node= document.createTextNode("This is new.");
para.appendChild(node);
var element = docuemt.getElementById("d1");
element.appendChild(para);
</script>

/
/
var para=document.createElement("p");

使用事件

  • 在元素上点击
  • 加载页面
  • 改变输入字段
//按钮点击时改变<dody>元素的背景色
<html>
<body>
<input type="button" onclick="document.body.style.backgroundColor='lavender';" value="Change background color"/>
</body>
</html>
/
/
/函数
<html>
<body>
<script>
function ChangeBackground(){
 dovument.body.style.backgroundColor="lavender"
}
</sctript>
<input type="button" onclick="ChangeBackground()" value="Change background color" />
</body>
</html>
有些压力总是得自己扛过去,说出来就成了充满负能量的抱怨。寻求安慰无济于事,还徒增了别人的烦恼。而但你独自走过艰难险阻,一定会感谢当初一声不吭要牙坚持这的自己。没人在乎你怎样在深夜痛苦,也没人在乎你辗转反侧要熬过几个秋。外人只看结果,自己独撑过程。等我们都明白了这个道理,便不会再在人前矫情,四处诉说以求安慰。
原文地址:https://www.cnblogs.com/Yokemadman/p/10231752.html