1.DOM
服務器---(返回)---HTML文件----(DOM樹)----瀏覽器
瀏覽器其實解析的是HTML文件的DOM樹,所以我們纔可以通過DOM來改變外觀,因爲更改DOM是直接修改顯示方式!
所以符合DOM標準的,一般在各個不同的瀏覽器也都支持的,因爲各個瀏覽器也同樣得遵循DOM的標準!
2.一切皆結點;
包括元素,文本,屬性和註釋
3.元素結點和文本結點
像<div>xx..</div>這樣的結點就是元素結點,元素結點有名無值
像"xxx"這樣只有文本的結點就是文本結點,文本結點無名有值
node nodeName nodeValue
<div> div null/undefined
"abc" null/undefined "abc"
4.有一些瀏覽器並不支持Node對象
如:if(someNode.nodeType == Node.ELEMENT_NODE) 有可能會報錯說找不到Node
5.當用DOM操作結點時,有一些空白的字符也有可能被當作文本結點,所以這個一定要注意
6.在DOM樹上面[即HTML文檔中的結點],1個元素只能有1個父親;所以移動1個元素到另1個地方的時候,不必在原來的地方執行移除操作,直接在目的地加入就行了
7.getElementById, getElementsByName, getElementsByTagName
7.1 getElementById()
只有document對象能夠使用
7.2 getElementsByName():
只有document對象能夠使用
返回的是數組
7.3 getElementsByTagName()
所有的結點都能使用
返回的是數組
<p id="div_1">
<input name="abc"/>
<input name="abc"/>
</p>
<input type="button" onclick="countElement();" value="button"/>
<script>
function countElement(){
var div_1 = document.getElementById("div_1");
var inputs1 = div_1.getElementsByTagName("input");
var inputs1_1 = document.getElementsByName("abc");//div等結點沒有getElementsByName()這個方法
alert(inputs1.length); //2
alert(inputs1_1.length);//2
}
</script>
7.4 ie和firefox中的getElementsByName的不同
在ie 中getElementsByName(“test“)的時候返回的居然是id=test的object數組,而使用firefox則返回的是name= test的object的數組。按照w3c的規範應該是firefox的實現是正確的,只是不解ie爲什麼要實現成爲id=test的方式...
8. 有時候寫1個JS方法,然後調用的時候看firebug說找不到這個函數,但是名字檢查正確無誤,也只是報這個錯而已;後來發現原來是方法裏面有錯誤,但是這個錯誤前面的alert()也不會被調用...
還有1次最鬱悶的,還是JS函數不能調用,吸收了上面的經驗,後來發現,我要調用的function的名字,叫做createElement(); 跟document的一樣。。。所以無效。。。
又來了1次無敵鬱悶的,還是JS函數不能調用,吸收了上面2個經驗,後來發現,原來是<script type="text/javascript"/>中,雙引號變成中文的雙引號了!!!
<p id="div_1">
<input name="abc"/>
<input name="abc"/>
</p>
<input type="button" onclick="countElement();" value="button"/>
<script>
function countElement(){
var div_1 = document.getElementById("div_1");
var inputs1 = div_1.getElementByTagName("input"); //少寫了s,出錯導致函數無法被調用..
var inputs1_1 = document.getElementsByName("abc");
alert(inputs1.length);
alert(inputs1_1.length);
}
</script>
9.window對象
window.frames :數組對象,對應於所有幀對象<frameset>或者<iframe>所對應的 window對象!
window.parent和window.top的區別:
window.top:最頂層的祖先窗口
window.parent : 裝載子窗口的窗口[即父窗口]
document.URL:返回當前文檔的 URL。很好用的一個屬性啊!