第十章 DOM 一 Document型別

2022-09-01 09:51:10 字數 2149 閱讀 6655

document型別

js通過document型別表示文件,在文件中document物件是htmldocument的乙個例項,表示整個html頁面。document物件是window物件的乙個屬性,因此可以將其作為全域性物件來訪問。

document節點的特徵:

在這裡,可以使用documentelement和document.body來分別取得對html元素和body元素的引用。

在這裡對於html的引用是有條件的。如果文件前面有的話,或者body裡有內容的話,就無法引用。

document還有乙個body屬性,直指body元素,對於body的引用方式,使用的頻率非常高

除此之外,document還提供了一些特殊的集合。這些集合都是htmlcollection物件,為訪問文件提供了快捷方式:

dom文件寫入

有乙個document物件的功能已經存在很多年了,那就是將輸出流寫入到網頁中的能力,有四個方法可以呼叫:

document.write() 接受乙個字串引數,即要寫入輸出流中的文字,write會原樣寫入。不過根據經驗,write() 可接受任何多個引數

documen.writeln()接受乙個字串引數,但是會在末尾新增換行符(\n)

輸出:

在頁面載入過程中,可以使用這兩個辦法動態地加入內容。document.write可以多次輸入:

在這裡,document.forms 集合可返回對文件中所有 form 物件的引用。

輸出:

輸出結果:

window.onload事件是在文件內容完全載入完畢再去執行事件處理函式,當然文件流已經關閉了,這個時候執行doucment.write函式會自動呼叫document.open()函式建立乙個新的文件流,並寫入新的內容,再通過瀏覽器展現,這樣就會覆蓋原來的內容。

再來看乙個例子:

輸出:在以上**中,原來的文件內容並沒有被清空,這是因為當前文件流是由瀏覽器所建立,並且document.wirte()函式身處其中,也就是執行此函式的時候文件流並沒有被關閉,這個時候不會呼叫document.open()函式建立新文件流,所以也就不會被覆蓋了。

再來看乙個例子:

上面使用document.close()關閉文件流了,為什麼還是不能夠覆蓋原來的內容的,很遺憾,文件流是由瀏覽器建立,無許可權手動關閉,document.close()函式只能夠關閉由document.open()函式建立的文件流。

最後看乙個例子:

由doucment.open()建立的文件流就可以由document.close()關閉,那麼第二個document.write()輸出的內容會覆蓋掉第乙個輸出的內容

window.open()建立的是乙個window視窗,並不是文件流,接下來的文件流是由newwindow.document.write("螞蟻部落歡迎您")建立,呼叫此方法就會自動呼叫document.open()建立乙個文件流。

JavaScript高階程式設計 第十章 DOM

這個例子會迴圈遍歷特定元素的每乙個子節點,然後只在子節點的nodetype等於1 表示是元素節點 的情況下,才會執行某些操作。8.開始與結束標籤之間只要存在內容,就會建立乙個文字節點。9.動態指令碼指的是在頁面載入時不存在,但將來的某一時刻通過修改dom動態新增的指令碼。10.訪問dom的操作在多數...

第十章 函式

使用def關鍵字 定義個數可變的位置形參 定義個數可變的關鍵字形參 定義預設值引數 定義個數可變的位置形參 deffun1 args 結果為乙個元組 print args fun1 10,20,30 10,20,30 定義個數可變的關鍵字形參 deffun2 args 結果為乙個字典 print a...

第十章 屬性

z屬性 本章也比較簡單稍作介紹 無參屬性就是我們常見的屬性 可以封裝屬性 以執行緒安全方式訪問 有參屬性就是c 中的所引器 匿名型別 如圖遇到如下 具體點就是 上面的注釋也已經講清楚了,定義的型別之後,構造例項,然後初始化屬性。現在詳細說下 編譯器接收到 上圖 先用var 定義乙個型別,但是不具體指...