DOM操作

作者: 小芬芬007 | 来源:发表于2017-06-05 15:49 被阅读0次

什么是DOM?###

定义:文档对象模型 (DOM) 是HTML和XML文档的编程接口。
DOM是浏览器提供的接口,想要操作DOM就要使用DOM。

什么是Node?###

节点(Node)是组成DOM的最小单位。DOM树,就是由各种不同类型的节点组成。

Element和Node的区别?####

对于HTML文档,节点(Node)主要有以下六种类型:

节点 名称 含义
Document 文档节点 整个文档(window.document)
DocumentType 文档类型节点 文档类型(比如<!DOCTYPE html>)
Element 元素节点 HTML元素(比如<body>、<div>等)
Attribute 属性节点 HTML元素属性(比如class="right")
Text 文本节点 HTML文档中出现的文本
DocumentFragment 文档碎片节点 文档的片段

So: Element继承了Node类,也就是说Element是Node多种类型中的一种,也叫作ELEMENT_NODE
也就是说我们平时使用的html上的元素,即Element是类型为ELEMENT_NODE的Node。

获取DOM####

 //获取节点(不会搜索不在文档中的元素)
var getnode1 = document.getElementById('test')
var getnodes1 = document.getElementsByClassName('test1 test2')

 //获取多个节点(返回的HTML集合是动态的)
var getnodes2 = document.getElementByTagName('p')

//支持更高级节点查询方法(只会返回第一个符合的元素)
var getnode2 = document.querySelector('div#test')

//返回与指定的选择器组匹配的元素列表(按出现的顺序排列)
var getnode3 = document.querySelectorAll("div.test, div.test2,div.test3")

创建DOM####

var createEle = document.createElement('div')
var createNode = document.createTextNode('hello world!')

查找DOM####

// 获取父元素、父节点(空时返回null)
var parent = node.parentElement;
var parent = node.parentNode;

// 返回包含指定节点的子节点的集合,该集合为即时更新的集合
var childrens = node.childrenNodes;   

// 当前元素的第一个/最后一个子元素节点
var el = node.firstElementChild;
var el = node.lastElementChild;

// 下一个/上一个兄弟元素节点
var el = node.nextElementSibling;
var el = node.previousElementSibling;

修改DOM####

// 删除一个子节点。返回删除的节点(oldChild === child)
var oldChild = node.removeChild(child);

//将一个节点添加到指定父节点的子节点列表末尾。
var newChild = node.appendChild(child);

// 指定的节点替换当前节点的一个子节点(newChild 替换 oldChild)
// 返回被替换掉的节点( replacedNode === oldChild相等)
var replacedNode = node.replaceChild(newChild, oldChild);

// 在当前节点的某个子节点之前再插入一个子节点
var insertedElement = parentElement.insertBefore(newElement, referenceElement);

//方法返回一个布尔值,判断当前节点是否有子节点。
element.hasChildNodes()

// textContent属性返回当前节点和它的所有后代节点的文本内容(textContent会把后代的div吃掉)
element.textContent = 'hello world'

操作属性####

// 获取数组
ele.attributes;
// 获取属性
ele.getAttribute('class');
//设置属性
ele.setAttribute('class', 'highlight');
// 判断属性
ele.hasAttribute('class');
//移除属性
ele.removeAttribute('class');
// 是否有属性设置
ele.hasAttributes();     

相关文章

网友评论

      本文标题:DOM操作

      本文链接:https://www.haomeiwen.com/subject/aadbzttx.html