《JavaScript DOM 編程藝術》(第二版)讀書筆記(二)

接下來正式進入DOM的學習javascript

第三章 DOMhtml

D表明document(文檔),O表明object(對象),M表明model(模型),簡單的說DOM把一份文檔表示成一顆「樹」(數學上的概念).java

節點(node),它表示一個網絡的鏈接點。一個網絡就是由一些節點構成的集合。DOM也是一樣的狀況,文檔是由節點構成的集合.node

1.元素節點(element node)數組

<html>、<head>、<body>、<p>、<ul>等標籤的名字就是元素的名字,好比文本段落元素名字是「p」瀏覽器

2.文本節點(text node) 通常文本節點包含在元素節點裏面網絡

3.屬性節點(attribute node) 屬性節點也包含在元素節點裏,好比最多見的class,id性能

每一個節點都是一個對象學習

獲取元素的方法spa

1.document.getElementById

2.document.getElementsByTagName

3.document.getElementsByClassName

第一種方法比較簡單,第二種方法須要注意的是獲得的結果是一個數組,第三個方法比較新,舊的瀏覽器版本沒有支持,但能夠用原有的方法實現,代碼以下

function getElementsByClassName(node,classname){ if(node.getElementsByClassName){                               //若是瀏覽器支持原生的方法,則直接用原生的方法
        return node.getElementsByClassName(classname); }else{ var results = new Array(); var elems = node.getElementsByTagName("*"); for(var i = 0; i < elems.length; i++){ if(elems[i].className.indexOf(classname)!=-1){ results[results.length]=elems[i]; } } return results; 
}

tips:indexOf()方法可返回某個指定的字符串值在字符串中首次出現的位置。沒有則爲-1。

獲取和設置屬性(二者只能做用於元素節點)

1.getAttribute 使用方法:object.getAttribute(attribute)

2.setAttribute 使用方法:object.setAttribute(attribute,value)

 

第四章 案例研究:javascript圖片庫

1.setAttribute能夠用其餘方法代替,直接設置:element.value = "the new value",至關於element.setAttribute("value","the new value")

2.childNodes 屬性

在一顆節點樹上,childNodes屬性能夠用來獲取任何一個元素的全部子元素,它是一個包含這個元素所有子元素的數組.

由childNodes屬性返回元素全部類型的節點,不單單是元素節點。幾乎每一種東西都會成爲一個節點,甚至空格和換行都會被解釋爲節點。

3.nodetype屬性

能夠用node.nodeType獲取節點的nodeType屬性

元素節點的nodetype屬性值是1,屬性節點的nodetype屬性值是2,文本節點的nodetype屬性值是3,註釋節點的nodetype屬性值是8,文檔節點的nodetype屬性值是9

4.nodevalue屬性

若是想改變一個文本節點的值,用nodeValue屬性,方法node.nodeValue

5.firstChildlastChild屬性

分別對應childNodes[0]和childNodes[childNodes.length-1]

 

第5章 最佳實踐

主要講了寫JS代碼的幾個須要重點注意的東西:

平穩退化、漸進加強、向後兼容、提高性能。

仔細閱讀,在日常作項目時運用。

相關文章
相關標籤/搜索