节点

document

createElement

  1. 创建元素
  2. document.createElement

    1. var div = document.createElement('div');
    2. div.innerHTML = 123;
    3. document.body.appendChild(div);

    createTextNode

  3. 创建文本节点

    1. var text = document.createTextNode('注释');
    2. document.body.appendChild(text);

    createComment

  4. 创建注释节点

    1. var comment = document.createComment('注释');
    2. document.body.appendChild(comment);

    createDocumentFragment()

  5. 创建文档碎片

  6. document.createDocumentFragment();

    1. var oUl = document.getElementById('list');
    2. for(var i = 0;i < 1000;i++){
    3. var oLi = document.createElement('li');
    4. oLi.innerHTML = i + `这是第+${i}个`
    5. oLi.className = 'list-item';
    6. oUl.appendChild(oLi);
    7. }

    创建一个div 节点来包含

    1. var oUl = document.getElementById('list'),
    2. oDiv = document.createElement('div');
    3. for(var i = 0;i < 1000;i++){
    4. var oLi = document.createElement('li');
    5. oLi.innerHTML = i + `这是第+${i}个`
    6. oLi.className = 'list-item';
    7. oDiv.appendChild(oLi);
    8. }
    9. oUl.appendChild(oDiv);//会多出一个div节点

    文档碎片

    1. var oUl = document.getElementById('list'),
    2. oFrag = document.createDocumentFragment();//创建一个文档碎片
    3. for(var i = 0;i < 1000;i++){
    4. var oLi = document.createElement('li');
    5. oLi.innerHTML = i + `这是第+${i}个`
    6. oLi.className = 'list-item';
    7. oFrag.appendChild(oLi);
    8. }
    9. oUl.appendChild(oFrag);

    字符串拼接

    1. var oUl = document.getElementById('list'),
    2. str = '';//创建一个文档碎片
    3. for(var i = 0;i < 1000;i++){
    4. str += '<li>这是第'+i+'个</li>'
    5. var oLi = document.createElement('li');
    6. oLi.innerHTML = i + `这是第+${i}个`
    7. oLi.className = 'list-item';
    8. oFrag.appendChild(oLi);
    9. }
    10. oUl.appendChild(oFrag);

    Node.prototype

    appendChild

    1. 增加子节点
      1. Node.prototype
      2. 在最后面增加
    2. 节点剪切功能

      c.insertBefore(a,b)

    3. 在父级c节点下的子节点b之前,插入a节点。

      父节点.removeChild(子节点)

    4. 返回被remove的节点 ```javascript DOM 对象 = 元素节点 节点: 元素节点,属性节点,注释节点,文本节点,documentFragment

元素 —> 构造函数实例化 —> 元素节点 div —> new HTMLDIVElement() removeChild(div) —> div DOM 对象 删除了节点 —> 存储在内存中

  1. <a name="xzmCh"></a>
  2. ### c.replaceChild(a,b)
  3. 1. 节点替换
  4. 1. 把父级c的节点b替换成a;
  5. <a name="ChreM"></a>
  6. ## element
  7. 1. remove
  8. 1. 元素销毁
  9. 2. innerHTML/innerText
  10. 1. HTMLElement.prototype
  11. 1. innerHTML还存在于Element.prototype
  12. 3. innerText
  13. 1. 获取的是文本
  14. 1. 老版本火狐不支持。需要使用textContent
  15. 1. textContent IE老版本也不支持
  16. 4. setAttribute,getAttribute
  17. 1. 获取和设置属性
  18. <a name="CDiQ4"></a>
  19. ### 5. data-*
  20. 1. 自定义属性
  21. 1. HTML5内容
  22. 1. IE9及以下都没有
  23. <a name="hCjRw"></a>
  24. ### 6. dataset
  25. 1. 管理自定义属性
  26. ```html
  27. <p data-age="12" data-name="张三">我是段落标签</p>

image.png
b. 获取属性
image.png
c. 设置属性

  1. div.getElementsByTagName('p')[0].setAttribute('data-age',11)