一荠商、window 對(duì)象
???????Window 對(duì)象是一個(gè)頂層對(duì)象,而不是另一個(gè)對(duì)象的屬性,即瀏覽器的窗口续誉;Window 對(duì)象表示一個(gè)瀏覽器窗口或一個(gè)框架莱没,在客戶端JavaScript中,Window 對(duì)象是全局對(duì)象酷鸦,所有的表達(dá)式都在當(dāng)前的環(huán)境中計(jì)算饰躲,所以引用當(dāng)前窗口根本不需要特殊的語法,可以把那個(gè)窗口的屬性作為全局變量來使用臼隔,例如可以只寫document嘹裂,而不必寫window.document;
???????同樣可以把當(dāng)前窗口對(duì)象的方法當(dāng)作函數(shù)來使用摔握,如只寫alert()寄狼,而不必寫Window.alert();
???????除了上面列出的屬性和方法氨淌,Window 對(duì)象還實(shí)現(xiàn)了核心JavaScript所定義的所有全局屬性和方法泊愧;
???????Window 對(duì)象的 window 屬性和self 屬性引用的都是它自己,當(dāng)需要明確地引用當(dāng)前窗口盛正,而不僅僅是隱式地引用它時(shí)删咱,可以使用這兩個(gè)屬性,除了這兩個(gè)屬性之外蛮艰,parent屬性腋腮、top屬性及frame[]數(shù)組都引用了與當(dāng)前Window 對(duì)象相關(guān)的其他Window 對(duì)象雀彼;
-
Window 對(duì)象集合
-
Window 對(duì)象屬性
-
Window 對(duì)象方法
二、Navigator 對(duì)象
???????Navigator 對(duì)象包含有關(guān)瀏覽器的信息即寡;Navigator 對(duì)象包含的屬性描述了正在使用的瀏覽器徊哑,可以使用這些屬性進(jìn)行平臺(tái)專用的配置;
-
Navigator 對(duì)象集合
-
Navigator 對(duì)象屬性
-
Navigator 對(duì)象方法
三聪富、History 對(duì)象
???????History對(duì)象包含用戶(在瀏覽器窗口中)訪問過的URL莺丑,History對(duì)象是Window對(duì)象的一部分,可通過window.history屬性對(duì)其進(jìn)行訪問墩蔓;
四梢莽、Location 對(duì)象
???????Location 對(duì)象包含有關(guān)當(dāng)前URL的信息,是Window對(duì)象的一部分奸披,可通過window.location屬性來訪問昏名;
五、Screen 對(duì)象
???????Screen 對(duì)象包含有關(guān)客戶端顯示屏幕的信息阵面;每個(gè)Window對(duì)象的screen屬性都引用一個(gè)Screen 對(duì)象轻局,Screen 對(duì)象中存放著有關(guān)顯示瀏覽器屏幕的信息,JavaScript程序?qū)⒗眠@些信息來優(yōu)化它們的輸出样刷,以達(dá)到用戶的顯示要求仑扑,例如:一個(gè)程序可以根據(jù)顯示器的尺寸選擇使用大圖像還是使用小圖像,它還可以根據(jù)顯示器的顏色深度選擇使用16位色還是使用8位色的圖形置鼻,另外镇饮,JavaScript程序還能根據(jù)有關(guān)屏幕尺寸信息將新的瀏覽器窗口定位在屏幕中間;
六箕母、Document 對(duì)象
???????每個(gè)載入瀏覽器的HTML文檔都會(huì)成為Document對(duì)象储藐,Document對(duì)象使我們可以從腳本中對(duì)HTML頁(yè)面中的所有元素進(jìn)行訪問;Document對(duì)象是Window和frames對(duì)象的一個(gè)屬性,是顯示于窗口或框架內(nèi)的一個(gè)文檔司蔬,可通過window.document屬性對(duì)其進(jìn)行訪問邑茄;
???????在HTML DOM(文檔對(duì)象模型)中,每個(gè)部分都是節(jié)點(diǎn):
???????1)文檔本身是文檔節(jié)點(diǎn)俊啼;
???????2)所有HTML元素是元素節(jié)點(diǎn);
???????3)所有HTML屬性是屬性節(jié)點(diǎn)左医;
???????4)HTML元素內(nèi)的文本是文本節(jié)點(diǎn)授帕;
???????5)注釋是注釋節(jié)點(diǎn);
七浮梢、HTML DOM Document 對(duì)象
???????每個(gè)載入瀏覽器的HTML文檔都會(huì)成為Document對(duì)象跛十,Document對(duì)象使我們可以從腳本中對(duì)HTML頁(yè)面中的所有元素進(jìn)行訪問;Document對(duì)象是Window對(duì)象的一部分秕硝,可通過window.document屬性對(duì)其進(jìn)行訪問芥映;
-
Document 對(duì)象集合
-
Document 對(duì)象屬性
-
Document 對(duì)象方法
八、HTML DOM Element 對(duì)象
???????在HTML DOM中,Element對(duì)象表示HTML元素奈偏,Element對(duì)象可以擁有類型為元素節(jié)點(diǎn)坞嘀、文本節(jié)點(diǎn)、注釋節(jié)點(diǎn)的子節(jié)點(diǎn)惊来;NodeList對(duì)象表示節(jié)點(diǎn)列表丽涩,比如HTML元素的子節(jié)點(diǎn)集合;元素也可以擁有屬性裁蚁,屬性是屬性節(jié)點(diǎn)矢渊;
- 1)element.accessKey屬性:設(shè)置或返回元素的快捷鍵,快捷鍵規(guī)定激活元素或使元素獲得焦點(diǎn)的快捷鍵枉证;
<!DOCTYPE html>
<html>
<head>
<script>
function accesskey()
{
document.getElementById('w3s').accessKey="w"
document.getElementById('g').accessKey="g"
}
</script>
</head>
<body onload="accesskey()">
<a id="w3s" >W3School</a><br>
<a id="g" >Google</a>
<p>accesskey 屬性規(guī)定激活元素的快捷鍵矮男。</p>
<p><b>注釋:</b>快捷鍵在不同的瀏覽器中各有不同:</p>
<ul>
<li>IE, Chrome, Safari, Opera 15+: [ALT] + <em>accesskey</em></li>
<li>Opera prior version 15: [SHIFT] [ESC] + <em>accesskey</em></li>
<li>Firefox: [ALT] [SHIFT] + <em>accesskey</em></li>
</ul>
</body>
</html>
- 2)element.appendChild() 方法:向節(jié)點(diǎn)添加最后一個(gè)子節(jié)點(diǎn);
// 將myList2的最后一個(gè)子節(jié)點(diǎn)添加到myList1中
<!DOCTYPE html>
<html>
<body>
<ul id="myList1"><li>Coffee</li><li>Tea</li></ul>
<ul id="myList2"><li>Water</li><li>Milk</li></ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕把項(xiàng)目從一個(gè)列表移動(dòng)到另一個(gè)列表中室谚。</p>
<button onclick="myFunction()">親自試一試</button>
<script>
function myFunction()
{
var node=document.getElementById("myList2").lastChild;
document.getElementById("myList1").appendChild(node);
}
</script>
</body>
</html>
- 3)element.attributes 屬性:返回指定節(jié)點(diǎn)的屬性集合昂灵,即 NamedNodeMap,可以使用 length 屬性來確定屬性的數(shù)量舞萄,然后遍歷所有的屬性節(jié)點(diǎn)并提取需要的信息眨补;
<!DOCTYPE html>
<html>
<body>
<p>點(diǎn)擊按鈕來查看 button 元素?fù)碛卸嗌賹傩浴?lt;/p>
<button id="myBtn" onclick="myFunction()">試一下</button>
<p id="demo"></p>
<script>
function myFunction() {
var x = document.getElementById("myBtn").attributes.length;
document.getElementById("demo").innerHTML = x;
}
</script>
<p>結(jié)果應(yīng)該是 2(button 元素的 id 和 onclick 屬性)。</p>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本中倒脓,attributes 屬性將返回元素所有可能的屬性的集合撑螺,在本例中,會(huì)返回大于 2 的數(shù)字崎弃。</p>
</body>
</html>
- 4)childNodes 屬性:返回節(jié)點(diǎn)的子節(jié)點(diǎn)集合甘晤,即NodeList 對(duì)象,可以使用 length 屬性來確定子節(jié)點(diǎn)的數(shù)量饲做,然后您就能夠遍歷所有的子節(jié)點(diǎn)并提取您需要的信息线婚;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得 body 元素子節(jié)點(diǎn)的相關(guān)信息。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction() {
var txt = "";
var c = document.body.childNodes;
for (i = 0; i < c.length; i++) {
txt = txt + c[i].nodeName + "<br>";
};
var x = document.getElementById("demo");
x.innerHTML = txt;
console.log(c)
}
</script>
<p><b>注釋:</b>元素中的空格被視為文本盆均,而文本被視為節(jié)點(diǎn)塞弊。</p>
</body>
</html>
4)element.nodeName屬性:指定節(jié)點(diǎn)的節(jié)點(diǎn)名稱,如果節(jié)點(diǎn)是元素節(jié)點(diǎn)泪姨,則nodeName屬性返回標(biāo)簽名游沿,如果節(jié)點(diǎn)是屬性節(jié)點(diǎn),則nodeName屬性返回屬性的名稱肮砾,對(duì)于其他節(jié)點(diǎn)類型诀黍,nodeName屬性返回不同節(jié)點(diǎn)類型的不同名稱;
5)element.className 屬性:設(shè)置或返回元素的 class 屬性仗处;
<!DOCTYPE html>
<html>
<body id="myid" class="mystyle">
<script>
var x=document.getElementsByTagName('body')[0];
document.write("Body CSS 類:" + x.className);
document.write("<br>");
document.write("另一個(gè)替代方法:");
document.write(document.getElementById('myid').className);
</script>
</body>
</html>
- 6)element.cloneNode方法:創(chuàng)建節(jié)點(diǎn)的拷貝眯勾,并返回該副本枣宫,cloneNode() 方法克隆所有屬性以及它們的值;如果您需要克隆所有后代吃环,請(qǐng)把 deep 參數(shù)設(shè)置 true也颤,否則設(shè)置為 false;
<!DOCTYPE html>
<html>
<body>
<ul id="myList1"><li>Coffee</li><li>Tea</li></ul>
<ul id="myList2"><li>Water</li><li>Milk</li></ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕把項(xiàng)目從一個(gè)列表復(fù)制到另一個(gè)列表中模叙。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var itm=document.getElementById("myList2").lastChild;
var cln=itm.cloneNode(true);
document.getElementById("myList1").appendChild(cln);
}
</script>
<p>請(qǐng)嘗試把 <em>deep</em> 參數(shù)設(shè)置為 false歇拆,將僅僅克隆空的 LI 元素。</p>
</body>
</html>
- 7)element.compareDocumentPosition() 方法:比較兩個(gè)節(jié)點(diǎn)范咨,并返回描述它們?cè)谖臋n中位置的整數(shù)故觅,返回值可能是:
1:沒有關(guān)系,兩個(gè)節(jié)點(diǎn)不屬于同一個(gè)文檔渠啊。
2:第一節(jié)點(diǎn)(P1)位于第二個(gè)節(jié)點(diǎn)后(P2)输吏。
4:第一節(jié)點(diǎn)(P1)定位在第二節(jié)點(diǎn)(P2)前。
8:第一節(jié)點(diǎn)(P1)位于第二節(jié)點(diǎn)內(nèi)(P2)替蛉。
16:第二節(jié)點(diǎn)(P2)位于第一節(jié)點(diǎn)內(nèi)(P1)贯溅。
32:沒有關(guān)系,或是兩個(gè)節(jié)點(diǎn)是同一元素的兩個(gè)屬性躲查。
注意:返回值可以是值的組合它浅。例如,返回 20 意味著在 p2 在 p1 內(nèi)部(16)镣煮,并且 p1 在 p2 之前(4)姐霍;
<!DOCTYPE html>
<html>
<body>
<p id="p1">This is a paragraph</p>
<p id="p2">This is another paragraph</p>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來比較兩個(gè)段落的位置。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var p1=document.getElementById("p1").lastChild;
var p2=document.getElementById("p2").lastChild;
var x=document.getElementById("demo");
x.innerHTML=p1.compareDocumentPosition(p2);
}
</script>
<p>
1: The two nodes do not belong to the same document.<br>
2: p1 is positioned after p2.<br>
4: p1 is positioned before p2.<br>
8: p1 is positioned inside p2.<br>
16: p2 is positioned inside p1.<br>
32: The two nodes has no relationship, or they are two attributes on the same element.
</p>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持此方法典唇。</p>
<p><b>注釋:</b>返回值可以是值的組合镊折。例如,返回 20 意味著在 p2 在 p1 內(nèi)部(16)介衔,并且 p1 在 p2 之前(4)恨胚。</p>
</body>
</html>
- 8)element.contentEditable 屬性:設(shè)置或返回元素內(nèi)容是否可編輯;也可以使用 isContentEditable 屬性來查明元素內(nèi)容是否可編輯炎咖;
<!DOCTYPE html>
<html>
<body>
<p id="myP" contenteditable="true">請(qǐng)嘗試改變此文本赃泡。</p>
<button onclick="myFunction(this);">禁用 p 元素文本編輯!</button>
<p id="demo"></p>
<script>
function myFunction(button) {
var x = document.getElementById("myP");
if (x.contentEditable == "true") {
x.contentEditable = "false";
button.innerHTML = "啟用 p 元素文本編輯塘装!";
} else {
x.contentEditable = "true";
button.innerHTML = "禁用 p 元素文本編輯急迂!";
}
}
</script>
</body>
</html>
- 9)element.dir 屬性設(shè)置或返回元素的文本方向;
<!DOCTYPE html>
<html>
<body id="myid" dir="rtl">
<script>
var x = document.getElementsByTagName('body')[0];
document.write("文本方向:" + x.dir);
document.write("<br>");
document.write("替代方法:");
document.write(document.getElementById('myid').dir);
</script>
</body>
</html>
- 10)element.firstChild 屬性:返回指定節(jié)點(diǎn)的首個(gè)子節(jié)點(diǎn)蹦肴,以 Node 對(duì)象;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得文檔首個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)名猴娩。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.firstChild.nodeName;
}
</script>
</body>
</html>
- 11)element.getAttribute() 方法:返回指定屬性名的屬性值阴幌,如果您希望以 Attr 對(duì)象返回屬性勺阐,請(qǐng)使用 getAttributeNode;
<!DOCTYPE html>
<html>
<body>
請(qǐng)閱讀 <a href="/jsref/dom_obj_attributes.asp" target="_blank">Attr 對(duì)象</a>矛双,
<p id="demo">請(qǐng)點(diǎn)擊按鈕來顯示上面這個(gè)鏈接的 target 屬性值渊抽。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var a=document.getElementsByTagName("a")[0];
document.getElementById("demo").innerHTML=a.getAttribute("target");
}
</script>
</body>
</html>
- 12)element.getAttribute() 方法:返回指定屬性名的屬性值,以 Attr 對(duì)象议忽,如果您只需要返回屬性值懒闷,請(qǐng)使用 getAttribute;
<!DOCTYPE html>
<html>
<body>
請(qǐng)閱讀 <a href="/jsref/dom_obj_attributes.asp" target="_blank">Attr 對(duì)象</a>栈幸,
<p id="demo">請(qǐng)點(diǎn)擊按鈕來顯示上面這個(gè)鏈接的 target 屬性值愤估。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var a=document.getElementsByTagName("a")[0];
var x=document.getElementById("demo");
x.innerHTML=a.getAttributeNode("target");
}
</script>
</body>
</html>
- 13)element.hasAttribute()方法:如果存在指定屬性,則 hasAttribute() 方法返回 true速址,否則返回 false赴魁;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來查看 button 元素是否擁有 onclick 屬性杨拐。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var btn=document.getElementsByTagName("BUTTON")[0];
var x=document.getElementById("demo");
x.innerHTML=btn.hasAttribute("onclick");
}
</script>
<p>Internet Explorer 8 以及更早的版本不支持該方法。</p>
</body>
</html>
- 14)element.hasAttributes()方法:如果指定節(jié)點(diǎn)擁有屬性,則 hasAttributes() 方法返回 true瘪弓,否則返回 false;如果指定節(jié)點(diǎn)不是元素節(jié)點(diǎn)补君,則返回值始終是 false蹋绽;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來查看 body 元素是否擁有屬性。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.body.hasAttributes();
}
</script>
<p>請(qǐng)嘗試向 body 元素添加屬性逃魄,結(jié)果將是 true 而不是 false荤西。</p>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持該方法。</p>
</body>
</html>
- 15)element.hasChildNodes() 方法:如果指定節(jié)點(diǎn)擁有子節(jié)點(diǎn)嗅钻,則返回 true皂冰,否則返回 false;
<!DOCTYPE html>
<html>
<body>
<ul id="myList"><li>Coffee</li><li>Tea</li></ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來查看列表元素是否擁有子節(jié)點(diǎn)养篓。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var lst=document.getElementById("myList");
var x=document.getElementById("demo");
x.innerHTML=lst.hasChildNodes();
}
</script>
<p>請(qǐng)嘗試刪除列表元素中的子節(jié)點(diǎn)秃流,結(jié)果將是 true 而不是 false。</p>
<p><b>注釋:</b>柳弄。</p>
<p>請(qǐng)嘗試刪除列表元素的子節(jié)點(diǎn)舶胀,結(jié)果將是 true 而不是 false。</p>
<p><b>注釋:</b>節(jié)點(diǎn)中的空白被視為文本節(jié)點(diǎn)碧注,因此如果在元素中留有空白或換行嚣伐,則元素依然有子節(jié)點(diǎn)。</p>
</body>
</html>
- 16)element.id 屬性:設(shè)置或返回元素的 id萍丐;
<!DOCTYPE html>
<html>
<body>
<p><a id="myAnchor" >訪問 W3School.com.cn</a></p>
<script>
var x=document.getElementById("myAnchor");
document.write(x.id);
</script>
</body>
</html>
- 17)innerHTML 屬性:設(shè)置或返回元素的 inner HTML轩端;
<!DOCTYPE html>
<html>
<head>
<script>
function changeLink()
{
document.getElementById('myAnchor').innerHTML="W3School";
document.getElementById('myAnchor').;
document.getElementById('myAnchor').target="_blank";
}
</script>
</head>
<body>
<a id="myAnchor" >微軟</a>
<input type="button" onclick="changeLink()" value="更改鏈接">
</body>
</html>
- 18)element.insertBefore() 方法:在您指定的已有子節(jié)點(diǎn)之前插入新的子節(jié)點(diǎn),如果您希望創(chuàng)建包含文本的新列表項(xiàng)逝变,請(qǐng)記得創(chuàng)建文本節(jié)點(diǎn)形式的文本基茵,以便追加到 LI 元素中奋构,然后向列表插入這個(gè) LI;您也可以使用 insertBefore 方法插入/移動(dòng)已有元素拱层;
<!DOCTYPE html>
<html>
<body>
<ul id="myList"><li>Coffee</li><li>Tea</li></ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕向列表插入一個(gè)項(xiàng)目弥臼。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var newItem=document.createElement("LI")
var textnode=document.createTextNode("Water")
newItem.appendChild(textnode)
var list=document.getElementById("myList")
list.insertBefore(newItem,list.childNodes[0]);
}
</script>
// 注釋:首先請(qǐng)創(chuàng)建一個(gè) LI 節(jié)點(diǎn),然后創(chuàng)建一個(gè)文本節(jié)點(diǎn)
// 然后向這個(gè) LI 節(jié)點(diǎn)追加文本節(jié)點(diǎn)根灯,最后在列表中的首個(gè)子節(jié)點(diǎn)之前插入此 LI 節(jié)點(diǎn)
</body>
</html>
- 19)element.isContentEditable 屬性:返回元素的內(nèi)容是否可編輯径缅,該屬性為只讀,請(qǐng)使用 contentEditable 屬性來改變?cè)氐目删庉嫚顟B(tài)烙肺;
<!DOCTYPE html>
<html>
<body>
<p id="myP" contenteditable="true">請(qǐng)點(diǎn)擊按鈕來檢查本元素是否可編輯纳猪。</p>
<button onclick="myFunction()">試一下</button>
<p id="demo"></p>
<script>
function myFunction() {
var x = document.getElementById("myP").isContentEditable;
document.getElementById("demo").innerHTML = x + " = p 元素可編輯。如需查看效果茬高,請(qǐng)嘗試改變其文本兆旬。";
}
</script>
</body>
</html>
- 20)element.isDefaultNamespace() 方法:如果指定的命名空間是默認(rèn)的,返回 true怎栽,否則返回 false丽猬;
<!DOCTYPE html>
<html>
<body>
<p id="demo">點(diǎn)擊按鈕來查看指定的命名空間是否是默認(rèn)的。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var d=document.documentElement;
var x=document.getElementById("demo");
x.innerHTML=d.isDefaultNamespace("http://www.w3.org/1999/xhtml");
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持 isDefaultNamespace 方法熏瞄。</p>
</body>
</html>
- 21)element.isEqualNode() 方法:檢查兩個(gè)節(jié)點(diǎn)是否相等脚祟,如果下例條件為 true,則兩個(gè)節(jié)點(diǎn)相等:
節(jié)點(diǎn)類型相同强饮;
擁有相同的 nodeName由桌、NodeValue、localName邮丰、nameSpaceURI 以及前綴行您;
所有后代均為相同的子節(jié)點(diǎn);
擁有相同的屬性和屬性值(屬性次序不必一致)剪廉;
提示:請(qǐng)使用 isSameNode() 方法來檢測(cè)兩節(jié)點(diǎn)是否是相同節(jié)點(diǎn)娃循;
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction('myList1','myList2')">比較列表 1 和列表 2:</button>
<button onclick="myFunction('myList1','myList3')">比較列表 1 和列表 3:</button>
<p id="demo">點(diǎn)擊按鈕來比較兩個(gè)列表中的首個(gè)項(xiàng)目。</p>
列表 1:
<ul id="myList1"><li>Water</li><li>Milk</li></ul>
列表 2:
<ul id="myList2"><li>Coffee</li><li>Tea</li></ul>
列表 3:
<ul id="myList3"><li>Water</li><li>Fire</li></ul>
<script>
function myFunction(x,y)
{
var item1=document.getElementById(x).firstChild;
var item2=document.getElementById(y).firstChild;
var x=document.getElementById("demo");
x.innerHTML=item1.isEqualNode(item2);
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持 isEqualNode 方法斗蒋。</p>
</body>
</html>
- 22)element.isSameNode() 方法:檢查兩節(jié)點(diǎn)是否是相同的節(jié)點(diǎn)捌斧;如果兩節(jié)點(diǎn)是相同的節(jié)點(diǎn),isSameNode() 方法返回 true泉沾,否則返回 false捞蚂;
提示:請(qǐng)使用 isEqualNode() 方法來檢查兩節(jié)點(diǎn)是否相等,但不必是相同節(jié)點(diǎn)跷究;
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">試一下</button>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來檢查 myList 元素是否與文檔的首個(gè)列表元素相同姓迅。</p>
<ul id="myList"><li>Coffee</li><li>Tea</li></ul>
<script>
function myFunction()
{
var item1=document.getElementById("myList");
var item2=document.getElementsByTagName("UL")[0];
var x=document.getElementById("demo");
x.innerHTML=item1.isSameNode(item2);
}
</script>
<p><b>注釋:</b>Firefox 版本 10 停止對(duì)此方法的支持,因?yàn)?DOM version 4 中已棄用該方法。作為替代队贱,您應(yīng)該使用 === 來比較兩節(jié)點(diǎn)是否相同色冀。</p>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持該方法潭袱。</p>
</body>
</html>
- 23)element.isSupported() 方法:檢測(cè)指定節(jié)點(diǎn)是否支持指定特性柱嫌;
<!DOCTYPE html>
<html>
<body>
<button onclick="myFunction()">試一下</button>
<p id="demo">點(diǎn)擊按鈕來檢查 button 元素是否支持特性 Core XML DOM Level 2。</p>
<script>
function myFunction()
{
var item=document.getElementsByTagName("BUTTON")[0];
var x=document.getElementById("demo");
x.innerHTML=item.isSupported("Core","2.0");
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持該方法屯换。</p>
</body>
</html>
- 24)element.lang 屬性:設(shè)置或返回元素的語言代碼编丘;
<!DOCTYPE html>
<html>
<body id="myid" lang="en-us">
<script>
var x=document.getElementsByTagName('body')[0];
document.write("Body 語言:" + x.lang);
document.write("<br>");
document.write("替代方法:");
document.write(document.getElementById('myid').lang);
</script>
</body>
</html>
- 25)element.lastChild 屬性:返回指定節(jié)點(diǎn)的最后一個(gè)子節(jié)點(diǎn),以 Node 對(duì)象彤悔;
<!DOCTYPE html>
<html>
<body>
<p>列表示例:</p>
<ul id="myList"><li>Coffee</li><li>Tea</li></ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得列表最后一個(gè)子節(jié)點(diǎn)的節(jié)點(diǎn)名嘉抓。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var l=document.getElementById("myList");
var x=document.getElementById("demo");
x.innerHTML=l.lastChild.nodeName;
}
</script>
<p><b>注釋:</b>元素中的空白被視作文本,而文本被視作文本節(jié)點(diǎn)晕窑。</p>
<p>請(qǐng)嘗試在 UL 關(guān)閉標(biāo)簽之前添加空格抑片,結(jié)果將是節(jié)點(diǎn) name=#text。</p>
</body>
</html>
- 26)element.namespaceURI 屬性:返回指定節(jié)點(diǎn)的命名空間的 URI杨赤;
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得文檔命名空間的 URI敞斋。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.documentElement.namespaceURI;
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持 namespaceURI 屬性。</p>
</body>
</html>
- 27)element.nextSibling 屬性:返回指定節(jié)點(diǎn)之后緊跟的節(jié)點(diǎn)疾牲,在相同的樹層級(jí)中植捎,被返回的節(jié)點(diǎn)以 Node 對(duì)象返回;如果沒有 nextSibling 節(jié)點(diǎn)阳柔,則返回值為 null焰枢;
<!DOCTYPE html>
<html>
<body>
<p>列表示例:</p>
<ul id="myList"><li id="item1">Coffee</li><li id="item2">Tea</li></ul>
<p id="demo">點(diǎn)擊按鈕來獲得首個(gè)項(xiàng)目的下一個(gè)同胞的 id。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.getElementById("item1").nextSibling.id;
}
</script>
<p><b>注釋:</b>元素中的空格被視作文本舌剂,而文本被視作文本節(jié)點(diǎn)济锄。</p>
<p>請(qǐng)嘗試在兩個(gè) <li> 元素之間添加空格,結(jié)果將是 "undefined"霍转。</p>
</body>
</html>
-
28)element.nodeType 屬性:以數(shù)字值返回指定節(jié)點(diǎn)的節(jié)點(diǎn)類型荐绝;
如果節(jié)點(diǎn)是元素節(jié)點(diǎn),則 nodeType 屬性將返回 1谴忧;
如果節(jié)點(diǎn)是屬性節(jié)點(diǎn)很泊,則 nodeType 屬性將返回 2;
<!DOCTYPE html>
<html>
<body><p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得 body 元素子節(jié)點(diǎn)的節(jié)點(diǎn)類型沾谓。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var txt="";
var c=document.body.childNodes;
for (i=0; i<c.length; i++)
{
txt=txt + c[i].nodeType + "<br>";
};
var x=document.getElementById("demo");
x.innerHTML=txt;
}
</script>
<p><b>注釋:</b>元素中的空格被視作文本委造,而文本被視作文本節(jié)點(diǎn)。</p>
</body>
</html>
- 29)element.nodeValue 屬性:設(shè)置或返回指定節(jié)點(diǎn)的節(jié)點(diǎn)值;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得 button 元素的節(jié)點(diǎn)值均驶。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var c=document.getElementsByTagName("BUTTON")[0];
var x=document.getElementById("demo");
x.innerHTML=c.childNodes[0].nodeValue;
}
</script>
<p><b>注釋:</b>元素內(nèi)的文本節(jié)點(diǎn)被視作文本節(jié)點(diǎn)昏兆,因此我們返回 button 元素的首個(gè)子節(jié)點(diǎn)(childNodes[0])的節(jié)點(diǎn)值。</p>
</body>
</html>
- 30)element.normalize() 方法移除空的文本節(jié)點(diǎn)妇穴,并連接相鄰的文本節(jié)點(diǎn)爬虱;
<!DOCTYPE html>
<html>
<body>
<p id="demo">點(diǎn)擊按鈕添加文本隶债,點(diǎn)擊另一個(gè)按鈕來正規(guī)化元素。</p>
<button onclick="addTextNode()">添加文本節(jié)點(diǎn)</button>
<button onclick="normPara()">對(duì)段落進(jìn)行正規(guī)化</button>
<script>
function addTextNode()
{
var y=document.createTextNode("請(qǐng)?jiān)俅吸c(diǎn)擊跑筝。");
var x=document.getElementById("demo");
x.appendChild(y);
var z=document.getElementById("cc");
z.innerHTML=x.childNodes.length;
}
function normPara()
{
var x=document.getElementById("demo");
x.normalize();
var z=document.getElementById("cc");
z.innerHTML=x.childNodes.length;
}
</script>
<p>上面的段落有 <span id="cc">1</span> 個(gè)子節(jié)點(diǎn)死讹。</p>
</body>
</html>
- 31)element.ownerDocument 屬性:以 Document 對(duì)象的形式返回節(jié)點(diǎn)的 owner document,在 HTML 中曲梗,HTML 文檔本身始終是元素的 ownerDocument赞警;
<!DOCTYPE html>
<html>
<body>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得 <p> 元素的 ownerDocument 的節(jié)點(diǎn)類型。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=x.ownerDocument.nodeType;
}
</script>
</body>
</html>
- 32)element.parentNode 屬性:以 Node 對(duì)象的形式返回指定節(jié)點(diǎn)的父節(jié)點(diǎn)虏两,如果指定節(jié)點(diǎn)沒有父節(jié)點(diǎn)愧旦,則返回 null;
<!DOCTYPE html>
<html>
<body>
<p>列表示例:</p>
<ul><li>Coffee</li><li>Tea</li></ul>
<p id="demo">點(diǎn)擊按鈕來獲得列表中首個(gè)列表項(xiàng)的父節(jié)點(diǎn)節(jié)點(diǎn)名定罢。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
var y=document.getElementsByTagName("LI")[0];
x.innerHTML=y.parentNode.nodeName;
}
</script>
</body>
</html>
- 33)element.previousSibling 屬性:返回同一樹層級(jí)中指定節(jié)點(diǎn)的前一個(gè)節(jié)點(diǎn)笤虫,被返回的節(jié)點(diǎn)以 Node 對(duì)象的形式返回,如果沒有 previousSibling 節(jié)點(diǎn)祖凫,則返回值是 null琼蚯;
<!DOCTYPE html>
<html>
<body>
<p>列表示例:</p>
<ul id="myList">
<li id="item1">Coffee</li><li id="item2">Tea</li>
</ul>
<p id="demo">請(qǐng)點(diǎn)擊按鈕來獲得第二個(gè)列表項(xiàng)的前一個(gè)同胞的 id。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction(){
var itm = document.getElementById('item2');
var x = document.getElementById('demo');
x.innerHTML = itm.previousSibling.id;
}
</script>
<p><b>注釋:</b>元素內(nèi)的空白字符被視作文本蝙场,而文本被視作節(jié)點(diǎn)凌停。</p>
<p>請(qǐng)?jiān)趦蓚€(gè) <li> 元素之間添加空格,結(jié)果將是 "undefined"售滤。</p>
</body>
</html>
- 34)element.removeAttribute() 方法:刪除指定的屬性罚拟,此方法與 removeAttributeNode() 方法的差異是:removeAttributeNode() 方法刪除指定的 Attr 對(duì)象,而此方法刪除具有指定名稱的屬性完箩,結(jié)果是相同的赐俗;同時(shí)此方法不返回值,而 removeAttributeNode() 方法返回被刪除的屬性弊知,以 Attr 對(duì)象的形式阻逮;
<!DOCTYPE html>
<html>
<body>
<h1 style="color:red">Hello World</h1>
<p id="demo">點(diǎn)擊按鈕來刪除標(biāo)題中的 style 屬性。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction(){
document.getElementsByTagName('h1')[0].removeAttribute('style');
}
</script>
</body>
</html>
- 35)element.removeAttributeNode() 方法:刪除指定的屬性秩彤,并以 Attr Node 對(duì)象返回被刪除的屬性叔扼,此方法與 removeAttribute() 方法的差異是,removeAttribute() 方法返回具有指定名稱的屬性漫雷,而此方法刪除指定的 Attr 對(duì)象瓜富。結(jié)果是相同的。同時(shí)降盹,removeAttribute() 方法沒有返回值与柑,而此方法返回被刪除的屬性,以 Attr 對(duì)象的形式;
<!DOCTYPE html>
<html>
<body>
<h1 style="color:red">Hello World</h1>
<p id="demo">點(diǎn)擊按鈕來刪除標(biāo)題中的 style 屬性節(jié)點(diǎn)价捧。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction() {
var n = document.getElementsByTagName('h1')[0];
var a = n.getAttributeNode('style');
n.removeAttributeNode(a);
}
</script>
</body>
</html>
- 36)element.removeChild() 方法:刪除指定元素的某個(gè)指定的子節(jié)點(diǎn)丑念,以 Node 對(duì)象返回被刪除的節(jié)點(diǎn),如果節(jié)點(diǎn)不存在則返回 null结蟋;
<!DOCTYPE html>
<html>
<body>
<ul id="myList"><li>Coffee</li><li>Tea</li><li>Milk</li></ul>
<p id="demo">點(diǎn)擊按鈕來刪除列表中的首個(gè)項(xiàng)目脯倚。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var list=document.getElementById("myList");
list.removeChild(list.childNodes[0]);
}
</script>
</body>
</html>
- 37)element.replaceChild() 方法:用新節(jié)點(diǎn)替換某個(gè)子節(jié)點(diǎn),這個(gè)新節(jié)點(diǎn)可以是文檔中某個(gè)已存在的節(jié)點(diǎn)椎眯,或者您也可創(chuàng)建新的節(jié)點(diǎn)挠将;
<!DOCTYPE html>
<html>
<body>
<ul id="myList"><li>Coffee</li><li>Tea</li><li>Milk</li></ul>
<p id="demo">點(diǎn)擊按鈕來替換列表中的首個(gè)項(xiàng)目。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction() {
var textnode = document.createTextNode('water');
var item = document.getElementById('myList').childNodes[0];
item.replaceChild(textnode, item.childNodes[0]);
}
</script>
<p>首先創(chuàng)建一個(gè)新的文本節(jié)點(diǎn)编整。<br>然后替換首個(gè)列表項(xiàng)中的首個(gè)子節(jié)點(diǎn)。</p>
<p><b>注釋:</b>本例用文本節(jié)點(diǎn) "Water" 替換文本節(jié)點(diǎn) "Coffee"乳丰,而不是整個(gè) LI 元素掌测,這是替換節(jié)點(diǎn)的另一種方法。</p>
</body>
</html>
- 38)element.setAttribute() 方法:添加指定的屬性产园,并為其賦指定的值汞斧,如果這個(gè)指定的屬性已存在,則僅設(shè)置/更改值什燕;
<!DOCTYPE html>
<html>
<body>
<input value="OK">
<p id="demo">點(diǎn)擊按鈕來設(shè)置按鈕的 type 屬性粘勒。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
document.getElementsByTagName("INPUT")[0].setAttribute("type","button");
}
</script>
<p>Internet Explorer 8 以及更早的版本不支持此方法。</p>
</body>
</html>
- 39)element.tabIndex 屬性:設(shè)置或返回元素的 tab 鍵控制次序屎即;
<!DOCTYPE html>
<html>
<head>
<script>
function changeTabIndex()
{
document.getElementById('1').tabIndex="3";
document.getElementById('2').tabIndex="2";
document.getElementById('3').tabIndex="1";
}
</script>
</head>
<body>
<p><a id="1" >1</a></p>
<p><a id="2" >2</a></p>
<p><a id="3" >3</a></p>
<input type="button" onclick="changeTabIndex()"
value="更改 TabIndex">
<p>請(qǐng)?jiān)诎聪?“更改 TabIndex” 按鈕前后事宜 tab 鍵在鏈接間導(dǎo)航庙睡。</p>
</body>
</html>
- 40)element.tagName 屬性:返回元素的標(biāo)簽名,在 HTML 中技俐,tagName 屬性的返回值始終是大寫的乘陪;
<!DOCTYPE html>
<html>
<body>
<p id="demo">點(diǎn)擊按鈕來顯示此元素的標(biāo)簽名。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=x.tagName;
}
</script>
</body>
</html>
- 41)element.textContent 屬性:設(shè)置或返回指定節(jié)點(diǎn)的文本內(nèi)容雕擂,以及它的所有后代啡邑,如果您設(shè)置了 textContent 屬性,會(huì)刪除所有子節(jié)點(diǎn)井赌,并被替換為包含指定字符串的一個(gè)單獨(dú)的文本節(jié)點(diǎn)谤逼,有時(shí),此屬性可用于取代 nodeValue 屬性仇穗,但是請(qǐng)記住此屬性同時(shí)會(huì)返回所有子節(jié)點(diǎn)的文本流部;
<!DOCTYPE html>
<html>
<body>
<p id="demo">點(diǎn)擊按鈕來獲得 button 元素的文本內(nèi)容。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var c=document.getElementsByTagName("BUTTON")[0];
var x=document.getElementById("demo");
x.innerHTML=c.textContent;
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持此屬性仪缸。</p>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<ul id="myList"><li id="item1">Coffee</li><li id="item2">Tea</li></ul>
<p id="demo">點(diǎn)擊按鈕來獲得列表元素的文本內(nèi)容贵涵。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var lst=document.getElementById("myList");
var x=document.getElementById("demo");
x.innerHTML=lst.textContent;
}
</script>
<p><b>注釋:</b>Internet Explorer 8 以及更早的版本不支持此屬性。</p>
<p><b>注釋:</b>文本內(nèi)容包含所有子節(jié)點(diǎn)的文本。</p>
</body>
</html>
- 42)element.title 屬性:設(shè)置或返回元素的咨詢標(biāo)題宾茂;
<!DOCTYPE html>
<html>
<body id="myid" title="mytitle">
<script>
var x=document.getElementsByTagName('body')[0];
document.write("Body title: " + x.title);
document.write("<br>");
document.write("替代方法:");
document.write(document.getElementById('myid').title);
</script>
</body>
</html>
<!DOCTYPE html>
<html>
<body>
<img src="/i/eg_planets.jpg"
border="0" usemap="#planetmap"
alt="Planets" />
<map name="planetmap" id="planetmap">
<area id="sun" shape="rect" coords="0,0,110,260"
href ="/example/html/sun.html" target ="_blank"
title="Sun" />
</map>
<p>太陽(yáng)的咨詢性標(biāo)題是(請(qǐng)把鼠標(biāo)移動(dòng)到太陽(yáng)上):
<script>
var x=document.getElementById('sun');
document.write(x.title);
</script>
</p>
</body>
</html>
- 43)element.item() 方法:返回節(jié)點(diǎn)列表中位于指定索引的節(jié)點(diǎn)瓷马,以下兩條語法產(chǎn)生相同的結(jié)果:
document.body.childNodes.item(0);
document.body.childNodes[0];
<!DOCTYPE html>
<html>
<body><p id="demo">點(diǎn)擊按鈕來獲得 body 元素首個(gè)子節(jié)點(diǎn)的名稱。</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.body.childNodes.item(0).nodeName;
}
</script>
</body>
</html>
- 44)element.length 屬性:返回集合中的節(jié)點(diǎn)數(shù)量跨晴,Node 對(duì)象的子節(jié)點(diǎn)集合是 NodeList 對(duì)象的實(shí)例欧聘;
<!DOCTYPE html>
<html>
<body><p id="demo">點(diǎn)擊按鈕來查看 body 元素?fù)碛卸嗌僮庸?jié)點(diǎn):</p>
<button onclick="myFunction()">試一下</button>
<script>
function myFunction()
{
var x=document.getElementById("demo");
x.innerHTML=document.body.childNodes.length;
}
</script>
<p><b>注釋:</b>元素內(nèi)或元素間的空白字符被視作文本,而文本被視作文本節(jié)點(diǎn)端盆。</p>
</body>
</html>