JS是以事件驅動為核心的一門語言。 事件的三要素:事件源、事件、事件驅動程式。 例如: 常見的事件如下: DOM:文檔對象模型。DOM 為文檔提供了結構化表示,並定義瞭如何通過腳本來訪問文檔結構。目的其實就是為了能讓js操作html元素而制定的一個規範。 DOM就是由節點組成的。 解析過程 HTML ...
JS是以事件驅動為核心的一門語言。
事件的三要素:事件源、事件、事件驅動程式。
例如:
<body> <div id="box1"></div> <script type="text/javascript"> // 1、獲取事件源 var div = document.getElementById("box1"); // 2、綁定事件 div.onclick = function () { // 3、書寫事件驅動程式 alert("我是彈出的內容"); } </script> </body>
常見的事件如下:
DOM:文檔對象模型。DOM 為文檔提供了結構化表示,並定義瞭如何通過腳本來訪問文檔結構。目的其實就是為了能讓js操作html元素而制定的一個規範。
DOM就是由節點組成的。
解析過程
HTML載入完畢,渲染引擎會在記憶體中把HTML文檔,生成一個DOM樹,getElementById是獲取內中DOM上的元素節點。然後操作的時候修改的是該元素的屬性。
DOM樹(一切都是節點)
DOM的數據結構如下:
DOM節點的獲取
DOM節點的獲取方式其實就是獲取事件源的方式。
節點的訪問關係,是以屬性的方式存在的。
JS中的父子兄訪問關係:
插入節點
插入節點有兩種方式,它們的含義是不同的。
方式1:
父節點.appendChild(新的子節點);
解釋:父節點的最後插入一個新的子節點。
方式2:
父節點.insertBefore(新的子節點,作為參考的子節點)
解釋:
- 在參考節點前插入一個新的節點。
- 如果參考節點為null,那麼他將在父節點最後插入一個子節點。
複製節點(克隆節點)
格式如下:
要複製的節點.cloneNode(); //括弧里不帶參數和帶參數false,效果是一樣的。
要複製的節點.cloneNode(true);
括弧裡帶不帶參數,效果是不同的。解釋如下:
-
不帶參數/帶參數false:只複製節點本身,不複製子節點。
-
帶參數true:既複製節點本身,也複製其所有的子節點。