DOM繼承樹,增刪改操作(精簡版)

對節點進行查詢

  • doaument代表整個文檔

  • document.getElemnetByID();
    var div = document.getElemnetByID();//元素id在IE8以下的瀏覽器不區分大小寫,而且返回匹配name值的元素

  • document.getElementsByTagName();//通過標籤名查找 實時的
    var div = document.getElementsByTagName("div");//類數組(DOM所生成的大多爲類數組)

  • document.getElementsByName();//返回帶有給定name特性的所有元素。常用來取得單選按鈕。

非實時:css選擇器。IE7及以下版本沒有。選擇出來的元素不是實時的,是副本。

  • document.querySelector();
var strong = document.querySelector("div>span strong.demo");//選擇div直屬span下class名爲demo的strong標籤
  • document.querySelectorAll();//css選擇器。IE7及以下版本沒有。選擇出來的元素不是實時的,是副本。
    ####遍歷節點樹
  • parentNode:父節點(最頂端parentNode爲"#document")
  • childNode: 子節點
        <div>
            123
            <!-- comment-->
            <strong></strong>
            <span></span>
        </div>
        
        <script>
        var div = document.getElementsByTagName("div")[0];
        console.log(div.childNodes.length); //7個節點
        </script>
  • firstChild:第一個子節點;lastChild:最後一個子節點
  • nextSibling:後一個兄弟節點 previousSilbing:前一個兄弟節點

遍歷元素節點樹(除children,IE9以下不兼容)

  • parentElement:返回當前元素的父元素節點
  • children:只返回當前元素的元素子節點
  • firstElementChild:第一個子元素
  • lastElementChild:最後一個子元素
  • previousElementSibling:指向前一個同輩元素
  • nextElementSibling:指向後一個同輩元素

節點四個屬性

  • nodeName 元素標籤名,大寫形式,只讀
  • nodeValue:text節點或Comment節點的文本內容,可讀寫
  • nodeType:該節點的類型,只讀
  • attributes:Element節點屬性集合
  • hasChildNodes:返回true或false

DOM結構樹

這裏寫圖片描述

DOM基本操作

  • getElementById方法定義在Document.prototype上,即Element節點上不能使用。
  • getElementsByName方法定義在HTMLDocument.prototype上,即非html中的document不能使用(xml document,Element)
  • getElementsByTagName方法定義在Document.prototype和Element.prototype上
  • HTMLDocument.prototype定義了一些常用屬性,body,head分別指HTML文檔中的標籤
  • Document.prototype上定義了documentElement屬性,指代文檔的根元素,在HTML文檔中,它總指代元素
    document.documentElement代表html
  • getElementsByClassName、querySelectorAll、querySelectorAll在Document.prototype,Element.prototype類中均有定義

  • document.createElement();//創建元素節點
    var div = document.createElement('');
  • document.createTextNode();//創建文本節點
  • document.createComment();//創建註釋
  • document.createDocumentFragment();

  • PARENTNODE.appendChild();
  • PARENTNODE.insertBefore();//插在前面
    div.insertBefore(a,b);//在div下的a插入在b之前

  • parentNode.removeChild();//剪切式刪除,返回刪除的標籤
  • child.remove();//銷燬,無返回值

替換

  • parentNode.replace(new,orgin);

Element節點屬性

  • innerHTML
<div></div>
var div = getElementByTagName('div')[0];
div.innerHTML = "123";//div的內容變爲123
div.innerHTML += "456";//div的內容變爲123456
div.innerHTML = "<span style='background-color:red;'>123</span>";//可寫樣式
  • innerText
    可賦值,但會覆蓋結構和文本;可取文本內容
    ####Element節點上的方法
  • setAttribute(“屬性名”,“屬性值”);//添加行間屬性(可以自定義屬性)
  • getAttribute(‘屬性名’);//讀取行間屬性值
    在這裏插入圖片描述
    DOM基礎知識(詳細)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章