# dom 基础

    技术2022-07-11  68

    什么是dom

    DOM --> Document Object Model

    DOM 定义了表示和修改文档所需的方法。DOM 对象即为宿主对象,由浏览器厂商定义,用来操作 html 和 XML 功能的一类对象的集合。也有人称DOM 是对HTML 以及xml 的标准编程接口。

    简单来说DOM 并不是一种技术,而是一种访问结构化文档的一种思想。借助DOM 模型,我们可以对DOM 树进行修改、删除、新增等操作,让结构化文档动态化。DOM 不能操作css 但是可以通过给html 元素 添加内置 style 改变样式

    DOM 节点:

    DOM 模型中的节点–文档可以说是有节点构成的集合.在 DOM 模型中有以下三种节点:

    元素节点:各种标签就是这些元素节点的名称,例如 < p >、< ul > 等 文本节点:文本节点总是被包含在元素节点的内部。 属性节点:一般用来修饰元素节点就称为属性节点。

    为了动态地修改HTML元素,须先访问HTML 元素。DOM 主要提供了两种方式来访问HTML 元素:

    根据 ID 访问HTML元素——通过document对象调用getElementByID() 方法来查找具有唯一id属性值得元素。利用节点关系访问HTML元素。常用的属性和方法如下:

    parentNode 返回当前节点的父节点。 previousSibling 返回当前节点的前一个兄弟节点。 nextSibing 返回当前节点的后一个兄弟节点。 childNodes 返回当前节点的所有子节点。 firstChild 返回当前节点的第一个子节点。 lastChild 返回当前节点的最后一个子节点。 getElementsByTagName(tagName) 返回当前节点的具有指定标签名的所有子节点

    通过节点查找元素实例:

    <ul id="names"> <li>zhangsan</li> <li>lisi</li> <li>wangwu</li> <li id="n4">zhaoliu</li> <li>xiaoqiang</li> <li>lingling</li> </ul> <input onclick="showContent(curr.parentNode)" type="button" value="父节点"> <input onclick="showContent(curr.parentNode.firstElementChild)" type="button" value="第一个子节点"> <input onclick="showContent(curr.previousElementSibling)" type="button" value="上一个节点"> <input onclick="showContent(curr.nextElementSibling.nextElementSibling)" type="button" value="下一个节点"> <input onclick="showContent(curr.parentNode.lastElementChild)" type="button" value="最后一个节点"> <input onclick="showItem()" type="button" value="得到所有li元素的个数"> <script> var curr = document.getElementById("n4") function showContent(target){ alert(target.innerHTML); } function showItem(){ console.log(document.getElementsByTagName("li")); } </script>

    通过标签名(元素名)找到元素

    语法: document.getElementsByTagName() 实例:通过 div标签名 找到元素 div 和 实现红蓝两色来回切换 var div = document.getElementByTagName('div')[0]; div.style.width = "100px"; div.style.height = "100px"; div.style.backgroundColor = "red"; var count = 0; div.onclick = function () { count ++ if(count % 2 == 1) { this.style.backgroundColor = "green"; }else{ this.style.backgroundColor = "red"; } }
    Processed: 0.013, SQL: 9