<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>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 操作DOM 由于HTML文檔被瀏覽器解析后就是一棵DOM樹,要改變HTML的結構,就需要通過JavaScript來操作DOM。 始終記住DOM是一個樹形結構。操作一個DOM節點實際上就是這么幾個操作: * 更新:更新該DOM節點的內容,相當于更新了該DOM節點表示的HTML的內容; * 遍歷:遍歷該DOM節點下的子節點,以便進行進一步操作; * 添加:在該DOM節點下新增一個子節點,相當于動態增加了一個HTML節點; * 刪除:將該節點從HTML中刪除,相當于刪掉了該DOM節點的內容以及它包含的所有子節點。 在操作一個DOM節點前,我們需要通過各種方式先拿到這個DOM節點。最常用的方法是`document.getElementById()`和`document.getElementsByTagName()`,以及CSS選擇器`document.getElementsByClassName()`。 由于ID在HTML文檔中是唯一的,所以`document.getElementById()`可以直接定位唯一的一個DOM節點。`document.getElementsByTagName()`和`document.getElementsByClassName()`總是返回一組DOM節點。要精確地選擇DOM,可以先定位父節點,再從父節點開始選擇,以縮小范圍。 例如: ``` // 返回ID為'test'的節點: var test = document.getElementById('test'); // 先定位ID為'test-table'的節點,再返回其內部所有tr節點: var trs = document.getElementById('test-table').getElementsByTagName('tr'); // 先定位ID為'test-div'的節點,再返回其內部所有class包含red的節點: var reds = document.getElementById('test-div').getElementsByClassName('red'); // 獲取節點test下的所有直屬子節點: var cs = test.children; // 獲取節點test下第一個、最后一個子節點: var first = test.firstElementChild; var last = test.lastElementChild; ``` 第二種方法是使用`querySelector()`和`querySelectorAll()`,需要了解selector語法,然后使用條件來獲取節點,更加方便: ``` // 通過querySelector獲取ID為q1的節點: var q1 = document.querySelector('#q1'); // 通過querySelectorAll獲取q1節點內的符合條件的所有節點: var ps = q1.querySelectorAll('div.highlighted > p'); ``` 注意:低版本的IE&lt;8不支持`querySelector`和`querySelectorAll`。IE8僅有限支持。 嚴格地講,我們這里的DOM節點是指`Element`,但是DOM節點實際上是`Node`,在HTML中,`Node`包括`Element`、`Comment`、`CDATA_SECTION`等很多種,以及根節點`Document`類型,但是,絕大多數時候我們只關心`Element`,也就是實際控制頁面結構的`Node`,其他類型的`Node`忽略即可。根節點`Document`已經自動綁定為全局變量`document`。 ## 練習 如下的HTML結構: JavaScript Java Python Ruby Swift Scheme Haskell ``` <!-- HTML結構 --> <div id="test-div"> <div class="c-red"> <p id="test-p">JavaScript</p> <p>Java</p> </div> <div class="c-red c-green"> <p>Python</p> <p>Ruby</p> <p>Swift</p> </div> <div class="c-green"> <p>Scheme</p> <p>Haskell</p> </div> </div> ``` 請選擇出指定條件的節點: ``` 'use strict'; // 選擇<p>JavaScript</p>: var js = ???; // 選擇<p>Python</p>,<p>Ruby</p>,<p>Swift</p>: var arr = ???; // 選擇<p>Haskell</p>: var haskell = ???; // 測試: if (!js || js.innerText !== 'JavaScript') { alert('選擇JavaScript失敗!'); } else if (!arr || arr.length !== 3 || !arr[0] || !arr[1] || !arr[2] || arr[0].innerText !== 'Python' || arr[1].innerText !== 'Ruby' || arr[2].innerText !== 'Swift') { alert('選擇Python,Ruby,Swift失敗!'); } else if (!haskell || haskell.innerText !== 'Haskell') { alert('選擇Haskell失敗!'); } else { alert('測試通過!'); } ```
                  <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>

                              哎呀哎呀视频在线观看