天天看點

JavaScript DOM操作

JavaScript DOM操作

操作DOM

DOM中節點類型
	Document文檔節點:代表整個網頁,不代表任何HTML标記,但它是html的父節點
	element元素節點:指任何HTML标記。每一個HTML标記就稱一個“元素節點”。它可以有文本節點和屬性節點。
	attribute屬性節點:指HTML标記的屬性。
	text節點:是節點樹的最低節點。
核心DOM中的公共的屬性和方法
	提示:核心DOM中查找結點(标記),都是先從根節點開始的(html節點)。主要是針對于HTML4.0開發的。
HTML DOM的新特性
	每一個HTML标記與元素對象的屬性一一對應
	核心DOM中的屬性方法,元素對象都能用
HTML DOM通路HTML元素的方法(最常用)
	getElementById("id名");
	getElementByTagName("TagName名"); //标記,和核心DOM中nodeName一樣
	getElementByClass("class名");
CSS的DOM動态樣式
	**使用JS操作CSS中的各屬性,JS隻能操作修改行内樣式。對于類樣式,可以通過className來指派。外聯式無法操作**
	**style樣式代替css樣式**
	style對象屬性與CSS屬性的轉換
		1.如果是一個單詞,則直接寫
		2.如果是多個單詞,則第一個單詞全小寫,後面每個單詞首字母大寫,并去掉中劃線。
DOM中Event對象      

由于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文法,然後使用條件來擷取節點,更加友善: