JavaScriptDOM文档对象类型

DOM文档对象类型

childNodes子节点,获取所有的文本和子元素

children子元素

parentNode父节点

nextElementSibling同级的下一个子元素

previousElementSibling同级的上一个子元素

nextSibling同级的下一个节点

previousSibling同级的上一个节点

    console.log(uls.childNodes);

    console.log(uls.children);

    console.log(uls.parentNode);

    console.log(lis[1].nextElementSibling);

    console.log(lis[1].previousElementSibling);

    console.log(lis[1].nextSibling);

    console.log(lis[1].previousSinling);

createElement创建元素

appendChild插入元素

如果插入的元素原文档里没有,那就是直接插入;如果有,那就是把要插入的元素从原位置移动到被插入元素的最后面。

removeChild删除子元素

insertBefore(ele1,ele2)在ele2前插入

ele1要插入的元素,如果原先在文档里有此元素,那么就是调换位置,如果没有,那就是插入

ele2插入在谁前面

hasChildNodes检查元素是否有子节点

replaceChild(ele1,ele2)替换元素

ele1替换的元素,如果原先在文档里有此元素,那么对ele1来说就是换个位置

ele2被替换的元素,替换后被删除

    var newDiv=document.createElement("div");

    uls.appendChild(newDiv);

    uls.removeChild(lis[2]);

    uls.insertBefore(newDiv,lis[0]);

    console.log(uls.hasChildNodes());//返回布尔值

    uls.replaceChild(newDiv,lis[1]);

getAttribute获取元素的属性值

setAttribute更改原有属性的属性值/创建新的属性

setAttribute假如元素有该属性,则为更改原有属性的属性值

setAttribute假如元素无该属性,则为创建新的属性

removeAttribute删除属性

hasAttribute检查是否有此属性

cloneNode()复制元素

cloneNode(true)复制整个元素,包括子节点

cloneNode(false)复制元素本身,不包括子节点

cloneNode接收的参数默认为false,只能复制元素或节点,不能复制事件,也就证明了复制的元素和原元素不全等

    <div class="imdiv" index="5"></div>

    var imdiv=document.querySelector(".imdiv");

    console.log(imdiv.getAttribute("index"));

    imdiv.setAttribute("index",90);//改变原有属性值

    imdiv.setAttribute("width",100);//创建新的属性

    imdiv.removeAttribute("index");

    console.log(imdiv.hasAttribute("index"));//返回布尔值

    var newDiv=imdiv.cloneNode(true);

    document.body.appendChild(newDiv);

DOM简易应用:

    <button class="dombtn">增加一个li</button>
    <ul class="domul"></ul>
    <script>
        var btn=document.querySelector(".dombtn");
        var ul=document.querySelector(".domul");
        var sum=1;
        btn.onclick=function(){
            var newLi=document.createElement("li");
            newLi.innerHTML="我是第"+sum+"个li";
            sum++;
            var newSpan=document.createElement("span");
            newSpan.innerHTML="删除";
            newSpan.style.color="blue";
            newLi.appendChild(newSpan);
            ul.appendChild(newLi);
            newSpan.onclick=function(){
                this.parentNode.parentNode.removeChild(this.parentNode);
            }
        }
    </script>