DOM

HTML DOM节点

  1. HTML DOM节点:在HTML DOM中所有的事物都是节点。DOM是被视为节点树的HTML
  2. DOM节点:

    • 整个文档是一个文档节点
    • 每个 HTML 元素是元素节点
    • HTML 元素内的文本是文本节点
    • 每个 HTML 属性是属性节点
    • 注释是注释节点
  3. 节点父(parent)、子(child)和同胞(sibling)

HTML DOM方法

  1. HTML DOM 方法是我们可以在==节点(HTML 元素)==上执行的动作。
    HTML DOM 属性是我们可以在节点(HTML 元素)设置和修改的值。

  2. 编程接口:
    可通过JavaScript(或其他编程语言)对HTML DOM进行访问
    所有的HtML元素被定义为对象,而编程接口则是对象方法和对象属性

HTML DOM对象-方法和属性

  1. 一些常用的 HTML DOM 方法:

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

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

    • removeChild(node) - 删除子节点(元素)

  2. 一些常用的 HTML DOM 属性:

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

    • parentNode - 节点(元素)的父节点

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

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

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

HTML DOM属性

属性是节点(HTML元素)的值,能够获取或设置

  1. innerHTML用于获取或改变任意HTML元素,包括<html><body>;
  2. nodeName属性规定节点的名称:nodeName 是只读的;元素节点的 nodeName 与标签名相同;属性节点的 nodeName 与属性名相同;文本节点的 nodeName 始终是 #text;文档节点的 nodeName 始终是 #document;nodeName始终包含HTML元素的大写字母标签名
  3. nodeValue属性

    • 元素节点的nodeValue是undefined或null
    • 文本节点的nodeValue是文本本身
    • 属性节点的nodeValue是属性值

HTML DOM访问

访问HTML-DOM,查找HTML元素

  1. 访问HTML元素(节点)

    • getElementById(“”)返回带有指定ID的元素引用
    • getElementsByTagName(“”)返回带有指定标签名的所有元素
    • getElementsByClassName(“”)返回带有相同类名的所有HTML元素;在IE的5,6,7,8中是无效的
  2. x=document.getElementById(“main”).getElementsByTagName(“p”);
    document.write(“div 中的第一个段落为: “ + x[0].innerHTML)

    在获取到标签的集合后可通过索引来获取内容,emmm或者用Array.from()方法将类数组直接转为数组

HTML DOM修改

修改HTML = 改变元素、属性、样式和事件。

  1. 修改HTML元素:改变HTML内容;改变CSS样式;改变HTML属性;创建新的HTML元素;删除已有的HTML元素;改变事件(处理程序);

  2. 创建HTML内容:innerHTML

  3. 改变HTML样式:通过HTML DOM访问HTML元素的样式对象

    1. document.getElementById("p2").style.fontSize = 'larger';
  1. 创建新的HTML元素:先创建该元素节点,然后把他追加到已有的元素上 ```javascript

这是一个段落。

这是另一个段落。

> createTextNode 创建一个文本 5. **修改HTML内容**: - 改变HTML内容:innerHTML - 使用事件:在元素上点击;加载页面;改变输入字段 <a name="e2462bc2"></a> ### HTML DOM元素 添加、删除和替换HTML元素 1. 创建新的HTML元素:createELement()+appendChild();将新元素作为父元素的最后一个元素进行添加 2. insertBefore():将新元素作为父元素的第一个元素添加 3. 删除已有的HTML元素:父元素.removeChild(子元素); > 常用的配套解决方案: > var child=document.getElementById("p1");<br /> child.parentNode.removeChild(child); > 通过parentNode来查找要删除元素的父元素 4. 替换HTML元素:replaceChild(新元素,旧元素) <a name="c808283c"></a> ### HTML DOM事件 通过JavaScript对HTML事件作出反应 在HTML元素中添加以下属性 1. 当用户点击鼠标时,当网页已加载时,当图片已加载时,当鼠标移动到元素上时,当输入字段被改变时,当HTML表单被提交时,当用户出发按键时 2. HTML事件属性:可以用事件属性为HTML元素分配事件 3. 可以通过HTML DOM来分配事件:`document.getElementById("myBtn").onclick=function(){displayDate()};` 4. onload和onunload事件:当用户进入或离开页面时,会触发onload和onunload事件; - onload事件可用于检查访客的浏览器类型和版本,以便基于这些信息来加载不同版本的网页 - onload和onunload事件可用于处理cookies 5. onchange事件:onchange 事件常用于**输入字段的验证**。 <br />下面的例子展示了如何使用 onchange。当用户改变输入字段的内容时,将调用 upperCase() 函数。javascript 输入你的名字:

当你离开输入框后,函数将被触发,将小写字母转为大写字母。

```

  1. onmouseover和onmouseout事件:鼠标指针移动到或离开元素时触发函数

  2. onmousedown、onmouseup 以及 onclick 事件:
    onmousedown、onmouseup 以及 onclick 事件是鼠标点击的全部过程。首先当某个鼠标按钮被点击时,触发 onmousedown 事件,然后,当鼠标按钮被松开时,会触发 onmouseup 事件,最后,当鼠标点击完成时,触发 onclick 事件

HTML DOM导航

  1. HTML DOM节点列表:通过getElementsByTagName()方法返回节点列表。节点列表是一个节点数组。类数组

  2. 三个节点属性:parentNode、firstChild 以及 lastChild

  3. DOM根节点:document.documentElement - 文档全部;document.body - 文档的主体

  4. 可以通过childNodes+nodeValue属性来获取元素的内容

    childNodes[]来选择选中的类数组内容,nodeValue获取该内容包含的值