1.如何获取节点

  1. getElementById()
  2. getElementsByTagName()
  3. getElementsByClassName()
  4. querySelectorAll()

2.节点的类型

  1. 元素节点
  2. 文本节点
  3. 属性节点

3.判断节点的类型

nodeType

4.获取属性节点

getAttributeNode() 获取属性节点
firtChild获取第一个子节点

  1. <p id="app">hello world</p>
  1. var app = document.getElementById("app");
  2. var id = app.getAttributeNode("id");
  3. console.log(app.nodeType)
  4. console.log(app.firstChild.nodeType)
  5. console.log(id.nodeType)

QQ截图20201123165132.jpg

5.获取文本节点和元素节点

childNodes—包含所有的子节点(不管文本还是元素都包含)
children —只会获取子节点

  1. <ul id="app">
  2. <li>hello world</li>
  3. <li>hello world</li>
  4. <li>hello world</li>
  5. <li>hello world</li>
  6. </ul>
  1. var app = document.getElementById("app");
  2. var childs = app.childNodes;
  3. var children = app.children;
  4. console.log(childs)
  5. console.log(children)

QQ截图20201123173741.jpg

6.获取所有的元素节点

childNodes

  1. <ul id="app">
  2. <li>hello world</li>
  3. <li>hello world</li>
  4. <li>hello world</li>
  5. <li>hello world</li>
  6. </ul>
  1. var app = document.getElementById("app");
  2. var childs = app.childNodes;
  3. var arr = [];
  4. for(var i=0;i<childs.length;i++){
  5. if(childs[i].nodeType == 1){
  6. arr.push(childs[i])
  7. }
  8. }
  9. console.log(arr);

QQ截图20201123174237.jpg

7.增加节点

  1. createElemnt();<br /> createTextNode();<br /> appendChild();
  1. <div id="app">
  2. <div>
  3. hello world</div>
  4. </div>
  5. </div>
  1. var app = document.getElementById("app");
  2. var p = document.createElement("p");
  3. var txt = document.createTextNode("hello world");
  4. p.appendChild(txt);
  5. app.appendChild(p);

QQ截图20201123174850.jpg

8.删除节点

removeChild

  1. <div id="app">
  2. <div id="child">child</div>
  3. <div>oooooooooo</div>
  4. </div>
  1. var app = document.getElementById("app");
  2. var child = document.getElementById("child");
  3. app.removeChild(child);

QQ截图20201123175429.jpg

9.替换节点

repalceChild(newNode,targetNode)

  1. <div id="app">
  2. <div id="child">child</div>
  3. </div>
  1. var app = document.getElementById("app");
  2. var child = document.getElementById("child");
  3. var p = document.createElement("p");
  4. p.innerHTML = "hello world";
  5. app.replaceChild(p,child);

QQ截图20201123175643.jpg

10.克隆节点

cloneNode

  1. <div id="app">
  2. <div class="one">
  3. hello world
  4. </div>
  5. </div>
  1. var app = document.getElementById("app");
  2. var one = document.getElementsByClassName("one")[0];
  3. var test = one.cloneNode(true);
  4. console.log(test);
  5. app.appendChild(test);

QQ截图20201123181725.jpg

11.元素的父节点

parentNode

  1. <ul>
  2. <li>html <button>删除</button></li>
  3. <li>css <button>删除</button></li>
  4. <li>javascript <button>删除</button></li>
  5. </ul>
  1. var btns = document.getElementsByTagName("button");
  2. for(var i=0;i<btns.length;i++){
  3. btns[i].onclick = function(){
  4. var temp = window.confirm("确定吗");
  5. if(temp){
  6. this.parentNode.style.display = "none"
  7. }
  8. }
  9. }

QQ截图20201124160643.jpg

12.第一个/最后一个/兄弟节点等

  1. firstChild 获取第一个子节点
  2. firstElementChild 获取第一个子元素节点
  3. lastchild 获取最后一个子节点
  4. lastelementchild 获取最后一个子元素节点
  5. nextsiblings 获取下一个兄弟节点
  6. nextelementsibings 获取下一个元素的兄弟节点
  7. prevsiblings 获取上一个兄弟节点
  8. prevelementsibings 获取上一个元素的兄弟节点
  1. <div>hello</div>
  2. <ul id="app">
  3. <li>html</li>
  4. <li>css</li>
  5. </ul>
  6. <div>world</div>
  1. var app =document.getElementById("app");
  2. console.log(app.firstChild);
  3. console.log(app.firstElementChild);
  4. console.log(app.lastElementChild);
  5. console.log(app.lastChild);
  6. console.log(app.nextSibling);
  7. console.log(app.nextElementSibling);
  8. console.log(app.prevSibling);
  9. console.log(app.prevElementSibling);