Dom 獲取、Dom動態創建節點


一、Dom獲取

  1、全稱:Document     Object     Model  文檔對象模型

  2、我們常用的節點類型

    元素(標簽)節點、文本節點、屬性節點(也就是標簽里的屬性)、

  3、document有個屬性叫nodeType返回的是數字

    1:代表元素節點

    2:代表屬性節點

    3:代表文本節點

  4、節點的獲取

    元素節點的獲取方法

      Document.getElementById()

      Document.getElementsByClassName()

      Document.getElementsByTagName()

      Document.querySelector()

      Document.querySelectorAll()

    屬性節點的獲取方法

      元素 . getAttribute("屬性名")    獲取屬性值的方法

      元素 . attribuites           獲取元素身上所有屬性構成的集合(數組)

      元素 . attribute [ 索引 ] . value     獲取元素里面的值

       元素 . setAttribute("屬性名","屬性值")  給元素設置屬性和屬性值

       元素 . remove("屬性")        刪除元素

    文本節點沒有獲取的方法,沒有意義

  5、獲取元素的子節點

    元素 . childNodes  這個屬性有兼容性,標准瀏覽器回獲取文本節點,而低版本的瀏覽器不會,所以建議children屬性

    獲取單個子節點:具有兼容問題

      獲取第一個子節點:

        標准下:元素 . firstElementchild

        非標准下:元素 . firstchild

      獲取最后一個子節點:

        標准下:元素 .lastElementchild

        非標准下:元素 . lastchild

      獲取上一個兄弟節點:

        標准下:元素 . previousElementsibling

        非標准下:元素 . previoussibling

      獲取上一個兄弟節點:

        標准下:元素 . nextElementchild

        非標准下:元素 . nextchild

      解決兼容性問題:

        拿獲取第一個子節點為列:

          var    list=document . getElementById("list")

          var   ss=list . firstElementchild ||  list . firstchild

  6、獲取父節點

      元素 . parentNode     沒有兼容性

二、Dom 動態創建節點

  1、生成節點的方法:

    document . createElement("div")

  2、插入節點的方法:

    父節點 . appendChild("新節點")

  3、在指定的位置插入節點

    父節點 . inserBefore(新節點,誰的前面)    將元素插入指定節點的前面

  4、刪除節點

    父節點 . removechild()   

 三、拓展

  字符串中的拼接和Dom創建都是渲染的方試

  字符串:

    優點:簡單,可以處理數據,層次感比較強

    缺點:字符串拼接會影響到原來子元素的事件

  Dom創建:

    優點:是一個獨立的個體,不會影響到原來的元素

    缺點:處理數據量過大會比較麻煩,會造成Dom回流

  Dom回流:

    頁面渲染時,我們對html結構簡單的增刪查改時,瀏覽器會對所有的dom重新排序,這就是Dom回流,嚴重影響瀏覽器的性能

  提升頁面性能優化:

    1、多采用雪碧圖

    2、阻止超鏈接的默認行為

    3、減少DOM回流

    4、減少向服務器請求次數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM