2.1增加节点

appendChild 向节点的子节点列表的末尾添加新的子节点 只能添加节点

  1. createElement() 创建元素节点
  2. createTextNode() 创建文本节点
  3. createAttribute()创建属性节点
  4. innerHTML 元素里的文字
  1. <div id="app">
  2. <p>one</p>
  3. </div>
  4. <script>
  5. /* appendChild -->在父元素的最后面添加一个元素 */
  6. var app = document.getElementById("app");
  7. var p = document.createElement("p");
  8. p.innerHTML = "hello world";
  9. app.appendChild(p);
  10. </script>

append 在结尾插入节点 可以添加节点和字符串 / prepend 在开头插入节点

  1. <ul id="app">
  2. <li>html</li>
  3. </ul>
  4. <script>
  5. // append,prepend
  6. var app = document.getElementById("app");
  7. var p1 = "<h1>我是在结尾插入的</h1>";
  8. var p2 = "<h1>我是在开头插入的</h1>"
  9. app.append(p1);
  10. app.prepend(p2)
  11. </script>

insertBefore 插入节点 parentNode.insertBefore ( newNode,在谁前面 ) 在已有的子节点前插入一个新的子节点

  1. <ul id="app">
  2. <li>html</li>
  3. <li id="js">javascript</li>
  4. </ul>
  5. <!--
  6. innerHtml 元素里的文字
  7. parentNode.insertBefore(newNode,在谁前面) 插入节点
  8. -->
  9. <script>
  10. var app = document.getElementById("app")
  11. var li = document.createElement("li")
  12. var js = document.getElementById("js")
  13. li.innerHTML = "vue"
  14. console.log(li);
  15. app.insertBefore(li,js)
  16. console.log(app)
  17. </script>

before / after

  1. <p id="p">hello world</p>
  2. <script>
  3. var p = document.getElementById("p");
  4. p.after("after")
  5. p.before("before")
  6. </script>

2.2删除节点

removeChild() 删除节点

  1. <div id="app">
  2. <p>one</p>
  3. <p id="two">two</p>
  4. </div>
  5. <script>
  6. var app = document.getElementById("app");
  7. var two = document.getElementById("two")
  8. app.removeChild(two);
  9. </script>

实例:点击删除按钮,删除节点

  1. <div id="app">
  2. <p>one</p>
  3. <p id="two">two</p>
  4. <button id="btn">删除</button>
  5. </div>
  6. <script>
  7. /* removeChild 从父节点上删除某个子节点
  8. parentElment.removeChild(childElement)
  9. */
  10. var app = document.getElementById("app");
  11. var two = document.getElementById("two")
  12. var btn = document.getElementById("btn");
  13. btn.onclick = function(){
  14. app.removeChild(two);
  15. }
  16. </script>
  1. <div id="app">
  2. <p>one</p>
  3. <p id="two">two</p>
  4. <button id="btn">删除</button>
  5. </div>
  6. <script>
  7. /*
  8. remove();
  9. element.remove();
  10. */
  11. var two = document.getElementById("two")
  12. var btn = document.getElementById("btn");
  13. btn.onclick = function(){
  14. two.remove();
  15. }
  16. </script>

2.3替换节点

replaceChild 替换节点 parentNode.replaceChild ( newNode,targetNode ) 替换某个元素

  1. <div id="app">
  2. <!-- <h1>change</h1> -->
  3. <p id="child">hello world</p>
  4. </div>
  5. <script>
  6. /*
  7. 替换节点
  8. parentNode.replaceChild(newNode,targetNode)
  9. */
  10. var app = document.getElementById("app");
  11. var h1 = document.createElement("h1");
  12. h1.innerHTML = "change";
  13. var child = document.getElementById("child");
  14. app.replaceChild(h1,child)
  15. </script>

2.4克隆节点

cloneNode

  1. node.cloneNode( )
  2. 括号为空或false浅拷贝,只复制标签不复制内容
  3. 括号为true,深拷贝,也复制内容
  4. <div id="app">
  5. <div id="one">hello world</div>
  6. </div>
  7. <script>
  8. var app = document.getElementById("app")
  9. var one = document.getElementById("one")
  10. var test = one.cloneNode(true)
  11. console.log(test);
  12. app.appendChild(test);
  13. console.log(app);
  14. </script>