js removeChild 方法深入理解

字號:


    下面小編就為大家?guī)硪黄猨s removeChild 方法深入理解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。
    1. 概述
    刪除后的節(jié)點雖然不在文檔樹中了,但其實它還在內(nèi)存中,可以隨時再次被添加到別的位置。
    當(dāng)你遍歷一個父節(jié)點的子節(jié)點并進(jìn)行刪除操作時,要注意,children屬性是一個只讀屬性,并且它在子節(jié)點變化時會實時更新
    // 拿到待刪除節(jié)點:
    var self = document.getElementById('to-be-removed');
    // 拿到父節(jié)點:
    var parent = self.parentElement;
    // 刪除:
    var removed = parent.removeChild(self);
    removed === self; // true
    2. example
    <!DOCTYPE html>
    <html>
    <head>
    </script>
    </head>
    <body>
    <ul id="test-list">
      <li>JavaScript</li>
      <li>Swift</li>
      <li>HTML</li>
      <li>ANSI C</li>
      <li>CSS</li>
      <li>DirectX</li>
    </ul>
    <script>
    var p= document.getElementById('test-list');
    var length = p.children.length;
    var i=0;
    for(; i<length; ){
      var li = p.children[i];
      var text = li.innerText;
      if(text!=='JavaScript' && text!=='HTML' && text!=='CSS'){
        p.removeChild(li);
        alert(p.children.toString());
        length--;
      }else{
        i++;
      }
    }
    // 測試:
    ;(function () {
      var
        arr, i,
        t = document.getElementById('test-list');
      if (t && t.children && t.children.length === 3) {
        arr = [];
        for (i = 0; i < t.children.length; i ++) {
          arr.push(t.children[i].innerText);
        }
        if (arr.toString() === ['JavaScript', 'HTML', 'CSS'].toString()) {
          alert('測試通過!');
        }
        else {
          alert('測試失敗: ' + arr.toString());
        }
      }
      else {
        alert('測試失敗!');
      }
    })();
    </script>
    </body>
    </html>
    以上這篇js removeChild 方法深入理解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考