一、dom节点创建
    1、元素节点的创建
    document.createElement继承自Document构造函数的原型对象,Element.prototype没有该方法。
    let divDom = document.createElement(‘div’);
    2、添加子节点 appendChild
    document.body.appendChild,该方法不在Document.prototype上,也不在Element.prototype,而是在Node.prototype上(Node是dom结构最顶层,这样设计可以让Document后代document.body、document.head、还有Element后代dom节点都享有该方法)。
    appendChild只接受dom节点(元素、文本、注释等dom节点),如果是字符串会报错
    appendChild不仅是添加dom节点,如果接受的参数是文档中已存在的节点,那么appendChild会对这个节点进行剪切复制,改变这个节点位置
    3、插入子节点 insertElement
    dom.insertElement(newDom, markDom)

    1. let a = document.createElement('a');
    2. a.innerHtml = '超链接';
    3. let p = document.getElementsByTagName('p')[0];
    4. document.body.insertElement(a, p)
    1. 4、移除删除节点<br />(1)移除子节点removeChild,**移除dom节点**(从dom结构中移除),**dom对象还在内存里面**。<br />先找到父节点,调用父节点方法移除dom节点<br />(2remove方法是es5后新增的方法,**dom节点和dom对象都移除**<br />直接调用dom节点后调用该方法,可以消除dom对象,自我毁灭(suicide)<br />5、替换节点<br />dom.replace(newDom, oldDom)

    二、innerHTML和innerText
    innerHTML是节点内部html字符串,而innerText是节点内部文本字符串(过略了HTML标签)

    三、给标签添加自定义属性 ‘data-attributeName
    H5中,可以给标签添加自定义属性 ‘data-attributeName’。
    可以直接在dom节点属性dataset中获取,dataset属性在ie9及以下不兼容,但是可以用getAttribute获取属性。

    1. <div data-myName='domName'><div>
    1. let divDom = document.getElementByTagName('div')[0];
    2. console.log(divDom.dataset.myName) // => domName
    3. console.log(divDom.getAttribute('myName'))

    四、减少dom操作次数之文档碎片,且不留痕迹
    document.createElementFragment,可以缓存dom节点,再插入文档后不增加多余节点

    1. let elementFragment = document.createElementFragment();
    2. for(let i = 0; i < 1000; i++){
    3. let oP = document.createElement('p')
    4. oP.innerText = i;
    5. elementFragment.appendChild(oP)
    6. }
    7. document.body.appendChild(elementFragment)

    五、作业
    1、原型上编程,hasChildren方法,判断是否含有子元素节点
    2、原型上编程,寻找兄弟元素节点方法,整数往前找,负数往后找,0是自己
    3、把文档所有元素节点遍历出来
    4、原型上封装insertAfter方法