【DOM】Document類型

1、在瀏覽器中械馆,ducument對象是HTMLDocument(繼承至Document類型)的一個實例耍攘,表示整個HTML頁面。
2堪滨、document對象是window對象的一個屬性胯陋,因此可以將其作為全局對象來訪問。

document節(jié)點特征

  • nodeType的值是9袱箱;
  • nodeName的值為“#document”遏乔;
  • nodeValue的值為null;
  • parentNode的值為null发笔;
  • ownerDocument的值為null盟萨;
  • 其子節(jié)點可能是一個DocumentType(最多一個)、Element(最多一個)了讨、ProcessingInstruction或Comment捻激。

文檔的子節(jié)點

所有瀏覽器都支持document.documentElementdocument.body屬性制轰。

documentElement屬性

  • documentElement屬性:該屬性始終指向HTML頁面中的<html>元素。(更快捷胞谭、更直接)
  • childNodes屬性:訪問文檔元素垃杖。
<html>
    <body>
    </body>
</html>
//這個頁面經(jīng)過瀏覽器解析后,其文檔中只包含一個子節(jié)點丈屹,即<html>元素调俘。

var html = document.documentElement;    //取得對<html>的引用
alert(html === document.childNodes[0]); //true
alert(html === document.firstChild);    //true

body屬性

var body = document.body;   //取得對<body>的引用

doctype屬性

var doctype = document.doctype; //取得對<!doctype>的引用

因為瀏覽器對document.doctype的支持不一致,因此這個屬性的用處很有限旺垒。
同樣彩库,瀏覽器之間的不一致性也導(dǎo)致位于<html>元素外部的注釋沒有什么用處。

文檔類型(如果存在的話)是只讀的袖牙,而且只能有一個元素子節(jié)點侧巨,因此用不著在document對象上調(diào)用appandChild()、removeChild()和replaceChild()方法鞭达。

文檔信息

title屬性

//取得文檔標題
var originalTitle = document.title;

//設(shè)置文檔標題
document.title = "New Page title";

URL屬性

包含頁面完整的URL。(即地址欄中顯示的URL)

domain屬性

包含頁面的域名皇忿。

referrer屬性

保存著鏈接到當前頁面的那個頁面的URL畴蹭。在沒有來源頁面的情況下,referrer屬性中可能會包含空字符串鳍烁。

//取得完整的URL
var url = document.URL;

//取得域名
var domain = document.domain;

//取得來源頁面的URL
var referrer = document.referrer;

三個屬性中叨襟,只有domain是可以設(shè)置的。但由于安全方面的限制幔荒,并不是可以設(shè)置任何值糊闽。

//假設(shè)頁面來自p2p.wrox.com域
document.domain = "wrox.com";       //成功
document.domain = "nczonline.net";  //出錯!

由于跨域安全限制爹梁,來自不同子域的頁面無法通過JavaScript通信右犹,而通過將每個頁面的document.domain設(shè)置為相同的值,這些頁面就可以互相訪問對方包含的JavaScript對象姚垃。

/* 
 瀏覽器對domain的限制:如果域名一開始是“松散的”(loose)念链,那么不能將它設(shè)置為“緊繃的”(tight)。
*/
//假設(shè)頁面來自于p2p.wrox.com域
document.domain = "wrox.com";       //松散的(成功)
document.domain = "p2p.wrox.com";   //緊繃的(出錯;础)

查找元素

getElementById()

/*
 * getElementById()
 * param:要取得元素的ID掂墓。
 *       (必須與頁面中元素的id特性嚴格匹配,包括大小寫)
 * 返回:
 *       如果找到相應(yīng)的元素則返回該元素看成;
 *       如果不存在帶有相應(yīng)ID的元素君编,則返回null
 */
 <div id="myDiv">text</div>
 
 var div = document.getElementById("myDiv");
 var div = document.getElementById("mydiv"); // 無效的ID(IE7 及以前可以)

getElementsByTagName()

/*
 * getElementsByTagName()
 * param:要取得元素的標簽名。
 * 返回:包含0或多個元素的NodeList川慌。
 *     (在HTML文檔中吃嘿,這個方法會返回一個HTMLCollection對象偿荷,作為一個“動態(tài)”集合。)
 */
 
 //取得頁面所有<img>元素唠椭,并返回一個HTMLCollection跳纳。
 var images = document.getElementsByTagName("img");

 //可以用方括號語法或item()方法來訪問HTMLCollection對象中的項。
 alert(images.length);
 alert(images[0].src);
 alert(images.item(0).src); 

 //HTMLCollection還有一個方法:namedItem()贪嫂,可以通過元素的name特性取得集合中的項寺庄。
 <img src="myimage.jpg" name="myImage">
 
 var myImage = images.namedItem("myImage");
 var myImage = images["myImage"];

 //取得文檔中所有元素,向getElementsByTagName()中傳入“*”力崇。
 var allElement = document.getElementsByTagName("*");

getElementsByName

只有HTMLDocument類型才有的方法斗塘。

/*
 * getElementsByName()
 * param:要取得元素的name。
 * 返回:帶有給定name特性的所有元素亮靴。
 */
 //最常用的是取得單選按鈕:確保發(fā)送給瀏覽器的值正確無誤馍盟,所有單選按鈕必須具有相同的name特性。
<input name="x" type="radio" value="貓">
<input name="x" type="radio" value="狗">

var x=document.getElementsByName("x");
alert(x.length);

特殊集合

  • document.anchors:包含文檔中所有帶name特性的<a>元素茧吊;
  • document.applets:包含文檔中所有的<applet>元素(不推薦使用)
  • document.forms:包含文檔中所有的<form>元素贞岭,與document.getElementsByTagName("form")得到的結(jié)果相同;
  • document.images:包含文檔中所有的<img>元素搓侄,與document.getElementsByTagName("img")得到的結(jié)果相同瞄桨;
  • document.links:包含文檔中所有帶href特性的<a>元素。

文檔寫入

write()讶踪、writeln()芯侥、open()、close()

write()乳讥、writeln()方法接受一個字符串參數(shù)柱查,即要寫入到輸出流的文本。在頁面被夾在過程中云石,可以使用這兩個方法向頁面中動態(tài)的加入內(nèi)容唉工。
open()、close()分別用來打開和關(guān)閉網(wǎng)頁的輸出流留晚。如果是在頁面加載期間使用write()或writeln()方法酵紫,則不需要用到這兩個方法。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末错维,一起剝皮案震驚了整個濱河市奖地,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赋焕,老刑警劉巖参歹,帶你破解...
    沈念sama閱讀 212,599評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異隆判,居然都是意外死亡犬庇,警方通過查閱死者的電腦和手機僧界,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,629評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來臭挽,“玉大人捂襟,你說我怎么就攤上這事』斗澹” “怎么了葬荷?”我有些...
    開封第一講書人閱讀 158,084評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長纽帖。 經(jīng)常有香客問我宠漩,道長,這世上最難降的妖魔是什么懊直? 我笑而不...
    開封第一講書人閱讀 56,708評論 1 284
  • 正文 為了忘掉前任扒吁,我火速辦了婚禮,結(jié)果婚禮上室囊,老公的妹妹穿的比我還像新娘雕崩。我一直安慰自己,他們只是感情好波俄,可當我...
    茶點故事閱讀 65,813評論 6 386
  • 文/花漫 我一把揭開白布晨逝。 她就那樣靜靜地躺著,像睡著了一般懦铺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上支鸡,一...
    開封第一講書人閱讀 50,021評論 1 291
  • 那天冬念,我揣著相機與錄音,去河邊找鬼牧挣。 笑死急前,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的瀑构。 我是一名探鬼主播裆针,決...
    沈念sama閱讀 39,120評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼寺晌!你這毒婦竟也來了世吨?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,866評論 0 268
  • 序言:老撾萬榮一對情侶失蹤呻征,失蹤者是張志新(化名)和其女友劉穎耘婚,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體陆赋,經(jīng)...
    沈念sama閱讀 44,308評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡沐祷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,633評論 2 327
  • 正文 我和宋清朗相戀三年嚷闭,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片赖临。...
    茶點故事閱讀 38,768評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡胞锰,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出兢榨,到底是詐尸還是另有隱情嗅榕,我是刑警寧澤,帶...
    沈念sama閱讀 34,461評論 4 333
  • 正文 年R本政府宣布色乾,位于F島的核電站誊册,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏暖璧。R本人自食惡果不足惜案怯,卻給世界環(huán)境...
    茶點故事閱讀 40,094評論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望澎办。 院中可真熱鬧嘲碱,春花似錦、人聲如沸局蚀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,850評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽琅绅。三九已至扶欣,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間千扶,已是汗流浹背料祠。 一陣腳步聲響...
    開封第一講書人閱讀 32,082評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留澎羞,地道東北人髓绽。 一個月前我還...
    沈念sama閱讀 46,571評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像妆绞,于是被迫代替她去往敵國和親顺呕。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,666評論 2 350

推薦閱讀更多精彩內(nèi)容