Q:什麼是DOM?
A:(Document Object Model,文檔對象模型,JS能夠經過DOM來操做HTML結構;在DOM中,全部事物都是節點javascript
DOM將HTML理解爲樹形結構,基本HTML轉換爲DOM視角以下(已省略部份內容)html
<html>
<head>
<title>"文檔標題"</title>
</head>
<body>
<a href="#">個人連接</a>
<h1>個人標題</h1>
</body>
</html>
複製代碼
DOM節點類型:node_type
Element節點:1
Text節點:3
Document節點:9
DocumentFragment節點:11
複製代碼
var title = document.createElement('h2');
var list = document.createTextNode('this is a test');
//將新建立的節點掛在DOM樹上
title.appendChild(list);
document.body.appendChild(title);
複製代碼
var id = document.getElementById("test"); //查找單個元素
var cls = document.getElementsByClassName("test"); //返回多個元素
var tag = document.getElementsByTagName("p"); //返回多個元素
//如下兩種方式傳入的是CSS選擇器
var q1 = document.querySelector("#id"); //返回查詢到的第一個元素
var q2 = document.querySelectorAll("li"); //返回多個元素
複製代碼
這裏簡單說下查詢多個元素時返回的HTML Collection對象,它會隨着DOM的改變而動態變化;內部數據是按照獲取順序排列的;能夠使用[index]來獲取對應內容,length屬性來獲取長度(只讀)java
var h1 = document.createElement('h1')
document.body.append(h1)
var h1 = documentSelectorAll('h1')
document.body.removeChild(h1)
h1.parentNode.removeChild(h1)
複製代碼
r = document.getElementById('aa');
r.textContent //"Hello World!" 文本內容
r.className //class屬性
r.classList //返回一個列表,可經過add等方法操做
r.classList.add('xxx');
r.classList.remove('xxx');
複製代碼