js原生dom操作

1. 节点

DOM节点,也叫DOM Node。

根据 W3C 的 HTML DOM 标准,HTML 文档中的所有内容都是节点。

  • 整个文档是一个文档节点

  • 每个 HTML 元素是元素节点

  • HTML 元素内的文本是文本节点

  • 每个 HTML 属性是属性节点

  • 注释是注释节点

    所以HTML节点类型一共有5种。文档节点、元素节点、文本节点、属性节点、注释节点

2. 创建节点

创建元素节点、创建文本节点、创建文档碎片、克隆节点

createElement、createTextNode、createDocumentFragment、cloneNode

var a = document.createElement("标签名");
var node = document.createTextNode("我是文本节点");
var m = a.cloneNode(true);
node.cloneNode(true/false) ,它接收一个bool参数,用来表示是否复制子元素。
3.节点之间的关系

var a = document.getElementById(“id1”);

父节点 a.parentNode

子节点 a.childNodes

兄弟节点 a.nextSibling a.previousSibling

4.节点的操作

为元素添加自己的属性

a.id = “myDiv”;
a.className = "myDivClass";

节点添加、删除、替换


parent.appendChild(child);
如:document.body.appendChild(a);
parentNode.insertBefore(newNode, refNode);
如:
var deletedChild = parent.removeChild(node);
parent.replaceChild(newChild, oldChild);
5.节点查找

getElementById() 方法可返回对拥有指定 ID 的第一个对象的引用。 getElementsByClassName() 方法可以返回所有指定类名的对象的集合。。 getElementsByTagName() 方法可返回带有指定标签名的对象的集合。 getElementsByName() 方法可返回带有指定名称的对象的集合。 querySelector() 方法返回文档中匹配指定 CSS 选择器的一个元素。 querySelectorAll() 方法返回匹配所有指定选择器的元素。

<div class="div">A</div>
<ul id='ul'>
    <li class="li">B</li>
    <li class="li">C</li>
</ul>
<span>D</span>
<input name='name' type="button" />

document.getElementById("ul");
document.getElementsByClassName('div');
document.getElementsByTagName('span');
document.getElementsByName('name');
document.querySelector(".div")
document.querySelectorAll(".div ,#ul")
6.节点属性操作

setAttribute()添加一个新属性(attribute)到元素上,或改变元素上已经存在的属性的值。如果这个指定的属性已存在,则仅设置/更改值。

removeAttribute()该方法用于移除元素的属性。

//添加属性
var div = document.getElementById("div");
div.setAttribute("class", "new_class");
div.setAttribute("id", "new_id");

//移除属性
var div2 = document.getElementById("div2");
div2.removeAttribute("class");
7.节点事件操作

addEventListener()将指定的事件监听器注册到目标对象上,当目标对象触发制定的事件时,指定的回调函数就会触发。目标对象可以是 文档上的元素、 document、 window 或者XMLHttpRequest(比如onreadystatechange事件)。

var div = document.getElementById("div");
div.addEventListener("click", function(){
      alert('嘻嘻');
},false);

removeEventListener