<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                [TOC] # DOM ## DOM 的定義 DOM 是一種 API,其作用為在程序中使用 HTML 文檔以及 XML 文檔。在 DOM 中, HTML 文檔與 XML 文檔會以樹形對象集合的形式被使用。這一樹形結構稱為 DOM 樹。 DOM 樹中的一個個對象被稱為節點。節點之間形成了一個樹形結構,樹中的某個節點可能會引用另外一個節點。根據引用關系,分別有父節點、子節點、兄弟節點、祖先節點、子孫節點等類型。 ### DOM Level 1 模塊 | 說明 ---|--- Core | 對包括 HTML 在內的基本 DOM 操作提供支持 HTML | 對一些專用于 HTML 文檔的方法提供支持 方法名 | 說明 ---|--- getElementsByTagName | 根據指定的標簽名來獲取元素 createElement | 創建新元素 appendChild | 插入元素 ### DOM Level 2 模塊 | 說明 ---|--- Core | Level 1 Core 的擴展 HTML | Level 1 HTML 的擴展 Views | 對與文檔顯示狀態相關的功能提供支持 Events | 對捕獲、冒泡、取消等事件系統提供支持 Styles | 對與樣式表相關的功能提供支持 Traversal and Range | 對 DOM 樹的遍歷以及范圍的指定提供支持 ### DOM Level 3 模塊 | 說明 ---|--- Core | Level 2 Core 的擴展 Load and Save | 對文檔內容的讀取與寫入提供支持 Validation | 對文檔內容合法性的驗證提供支持 XPath | 對 XPath 相關的功能提供支持 Events | Level 2 Events 的擴展。對鍵盤事件提供了支持 ## 元素、節點 元素和節點之間略有一些繼承關系,其中節點是父類概念。節點具有 nodeType 這一屬性,如果其值為 ELEMENT_NODE(1),該節點則是一個元素。 節點 | 節點類型常量 | 節點類型的值 | 接口 ---|---|---|--- 元素節點 | ELEMENT_NODE | 1 | Element 屬性節點 | ATTRIBUTE_NODE | 2 | Attr 文本節點 | TEXT_NODE | 3 | Text 注釋節點 | COMMENT_NODE | 8 | Comment 文檔節點 | DOCUMENT_NODE | 9 | Document ## Live 對象的特征 類似 `getELementsByTagName()` 方法獲取到的對象是一個 NodeList 對象,是一個 Live 對象。 Live 對象始終具有 DOM 樹實體的引用。對 DOM 樹做出的變更也會在 Live 對象中得到體現。 ## 父節點、子節點、兄弟節點 屬性名 | 能夠獲取的節點 ---|--- parentNode | 父節點 childNode | 子節點列表 firstChild | 第一個子節點 lastChild | 最后一個子節點 nextSibling | 下一個兄弟節點 previousSibling | 上一個兄弟節點 此外,空白符也會作為文本節點處理。 還制定了一套用于獲取一些不包含空白節點與注釋節點的元素的API 屬性名 | 能夠獲取的節點 ---|--- chidlren | 子元素節點列表 firstElementChild | 第一個子節點 lastElementChild | 最后一個子節點 nextElementSibling | 下一個兄弟節點 previousElementSibling | 上一個兄弟節點 childElementCount | 子元素的數量 ## Selector API `querySelector()` 將只會返回第一個與條件相符的元素。 `querySelectorAll()` 將返回所有符合條件的元素。取得的是一個 StaticNodeList 對象。 StaticNodeList 對象和 NodeList 對象不同點在于,對 StaticNodeList 對象進行修改則不會反應在 HTML 文檔中。 ## 節點的內容更改 通過 `replaceChild()` 方法替換節點 ```javascript parentNode.replaceChild(newNode, oldNode); ``` ## textContent `textContent` 屬性可以取得包含子元素在內的純文本部分。 ```javascript element.textContext = '<div> div here </div>'; // 不會創建 div 元素。在瀏覽器中將會直接顯示該字符串 ``` ## DOM 操作的性能 如果在顯示上發生了變化,瀏覽器則要重新繪制畫面。畫面的重新繪制這一步驟是需要花費開銷的,所以要盡可能避免重新繪制畫面。 使用 `DocumentFragment` 可將畫面的重繪次數降至 1 次。 ```javascript var fragment = document.createDocumentFragment(); for(var i=0; i < 10; i++){ var child = document.createElement('div'); fragment.appendChild(child); } document.body.appendChild(fragement); ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看