HTML DOM學習筆記
DOM 是Document Object Model( 文件物件模型 )的縮寫。
DOM是把html裡面的各種資料當作物件進行操作的一種思路。 (面向物件的角度看html的標籤)
節點概念
DOM把所有的html都轉換為節點
整個文件 是一個節點
元素 是節點
元素屬性 是節點
元素內容 是節點
註釋 也是節點
獲取節點
document.getElementById |
通過id獲取元素節點 |
getElementsByTagName |
通過標籤名稱獲取元素節點 |
getElementsByClassName |
通過類名獲取元素節點 |
getElementsByName |
通過表單元素的name獲取元素節點 |
attributes |
獲取屬性節點 |
childNodes |
獲取內容節點 |
注:獲取節點為null,可能是在執行到 document.getElementById的時候,div標籤還沒有載入,所以無法獲取。因為javascript是解釋語言,是順序執行的。
節點的屬性
nodeName |
節點名稱 |
nodeValue |
節點值 |
nodeType |
節點型別 |
innerHTML |
元素的文字內容 |
id value className |
元素上的屬性 |
樣式
一個元素節點的style屬性即對應的css
通過給元素的style.backgroundColor 賦值,修改樣式
你也許注意到了style.backgroundColor 這裡的backgroundColor和css中的背景色background-color是有所不同的
換句話說,通過DOM的style去修改樣式,需要重新記憶另一套樣式名稱,這是很累贅的事情。
最好能夠通過CSS的屬性名,直接就進行修改了。比如通過這樣的方式:
d1.css("background-color","green");
這樣就僅僅需要使用CSS原本的屬性名即可了。
Javascript並不提供這樣的解決方案,但是到了JQuery就提供了這樣的解決方案
事件
onfocus onblur |
焦點事件 |
onmousedown onmouseup onmousemove onmouseout |
滑鼠事件 |
onkeydown onkeypress onkeyup |
鍵盤事件 |
onclick ondbclick |
點選事件 |
onchange |
變化事件 |
onsubmit |
提交事件 |
onload |
載入事件 |
this |
當前元件 |
return false |
阻止事件的發生 |
節點關係
parentNode |
父節點關係 |
previousSibling nextSibling |
同胞節點關係 |
childNodes |
子節點關係 |
childNodes children |
childNodes和children的區別: childNodes和children都可以獲取一個元素節點的子節點 |
建立節點
createElement |
建立元素節點 |
createTextNode |
建立文字節點 |
createAttribute |
建立屬性節點 |
例:
/*定義 函式,建立標籤*/
function createTag(tagName,tagVal){
var tag=document.createElement(tagName);
tag.className=tagVal;
return tag;
}
/*根據id或class 查詢標籤*/
function $(selector){
return document.querySelector(selector);
}