1.DOM的概念:DOM是一套對文檔的內容進行抽象和概念化的方法。W3c對其定義為:一種與系統平台和程式設計語言無關的介面,程式和指令碼可以通過這個介面動態地對文檔內容、結構、樣式進行訪問和修改。
2.第一次使用的變數,記住最好加上var
3.getElementById得到的結果是一個對象;getElementByTagName()得到的結果是一個數組,哪怕元素的個數只有一個;
getAttribute()、setAttribute()函數只能通過對象才可以使用,即使是document也不可以調用。
說明:setAttribute()做出的修改不會反應在文檔本身的原始碼裡。
引申:DOM的工作模式---先載入文檔的靜態內容、再以動態方式對他們進行重新整理,動態重新整理不影響文檔的靜態內容。
4.文檔中每一個元素節點都是一個對象
5.事件處理機制:執行完javascript函數之後,如果返回的結果為true,則事件將會被執行,如果為false,則說明沒有被執行,事件也就不會發生。
6.javascript使用原則:
6.1 留有退路:如果沒有留有退路,一會死使用者體驗降低,二是影響網頁在搜尋引擎上的排名
a.通過“javascript:”偽協議調用javascript代碼的做法非常不好;
b.內嵌的事件處理函數,如果瀏覽器禁止javascript功能,那麼內嵌函數的功能就無法實現。
經典的預留退路的例子:<a href="http://google.com.hk" onclick="popUp('http://google.com.hk');return false;">
6.2 分離javascript
6.3 向後相容:首先是進行對象檢測(object dectection),使用if語句來進行檢測,例如:if(!document.getElementById) return false;
7.匿名函數:是一種“臨時抱佛腳”式的函數建立方法,沒有名字,只能在哪定義在哪使用。
8.結構和行為的相互分離程度越大越好
9. creatElement()只能夠建立元素節點,appendChild()可以把子節點附加到父節點上面,createTextNode()用於建立文本節點,insertBefore()使用者在某節點之前建立節點,aa.nextSbling得到aa的下一個兄弟節點,parentNode:父節點,previousSibling:上一個節點,childNodes:位元組點,firstChild:第一個子節點,lastChild:最後一個子節點,nodeType:節點類型,nodeName:節點名稱。
10.javscript DOM主要用於充實文檔的內容,要避免把核心內容通過DOM添加到文檔中去。
11.為class屬性是CSS深入DOM領域的證據。
12.使用a.style得到的是一個對象,並且只能夠處理內嵌樣式,同時使用a.className(+)="css",也可以修改樣式。