javascript節點操作DOMDocument屬性和方法
最近發現DOMDocument對象很(hěn)重要,還(hái)有XMLHTTP也很(hěn)重要
注意大(dà)小(xiǎo)寫一定不能弄錯.
屬性:
1Attributes 存(cún)儲節點的屬性列表(隻讀(dú))
2childNodes 存儲節點(diǎn)的子節點列表(隻讀)
3dataType 返回(huí)此節點的數據類(lèi)型
4Definition 以DTD或XML模(mó)式給出(chū)的(de)節點(diǎn)的定(dìng)義(yì)(隻讀)
5Doctype 指定文檔(dàng)類型(xíng)節點(隻讀(dú))
6documentElement 返(fǎn)回文檔的根元(yuán)素(可讀寫)
7firstChild 返回當前節(jiē)點的第一個子節點(隻讀)
8Implementation 返回XMLDOMImplementation對(duì)象
9lastChild 返回當(dāng)前節點最後一個子節(jiē)點(隻讀(dú))
10nextSibling 返回當前節點的下一個兄弟節點(隻(zhī)讀)
11nodeName 返回節(jiē)點的名字(隻讀(dú))
12nodeType 返回節點(diǎn)的類型(隻讀)
13nodeTypedValue 存儲節點值(可(kě)讀寫)
14nodevalsue 返回節點的(de)文(wén)本(běn)(可讀寫(xiě))
15ownerDocument 返回包含此節點的根(gēn)文檔(隻讀)
16parentNode 返回(huí)父節點(隻讀)
17Parsed 返(fǎn)回此(cǐ)節點及其子(zǐ)節點是否已經被(bèi)解析(隻(zhī)讀)
18Prefix 返(fǎn)回名稱空間(jiān)前綴(zhuì)(隻讀)
19preserveWhiteSpace 指定是(shì)否保(bǎo)留空白(bái)(可讀寫)
20previousSibling 返回此節點的前一個兄弟節點(隻讀)
21Text 返回此節點及其(qí)後代的文本內容(可讀寫)
22url 返(fǎn)回最(zuì)近載入的XML文檔的URL(隻讀(dú))
23Xml 返回節點及其後代的XML表(biǎo)示(隻讀)
方法:
1appendChild 為當前節點(diǎn)添加一(yī)個新的子(zǐ)節點,放在最(zuì)後的子節(jiē)點後
2cloneNode 返(fǎn)回當前節點的拷貝
3createAttribute 創(chuàng)建新的屬性
4createCDATASection 創建包括給定數(shù)據的CDATA段
5createComment 創建一個注釋(shì)節點
6createDocumentFragment 創建DocumentFragment對象(xiàng)
7createElement 創(chuàng)建一個元(yuán)素節點
8createEntityReference 創建EntityReference對象
9createNode 創建給定類(lèi)型,名(míng)字和命名(míng)空(kōng)間(jiān)的(de)節點
10createPorcessingInstruction 創建(jiàn)操作(zuò)指令節點
11createTextNode 創建包括給定(dìng)數(shù)據(jù)的文本節點
12getElementsByTagName 返回指(zhǐ)定名字(zì)的元素集合
13hasChildNodes 返回當前(qián)節點是否有(yǒu)子節點
14insertBefore 在指定節點(diǎn)前插入子(zǐ)節點
15Load 導入(rù)指定位置的(de)XML文檔
16loadXML 導入指(zhǐ)定字符串的XML文檔
17removeChild 從子結點列(liè)表(biǎo)中刪除指定的(de)子節點(diǎn)
18replaceChild 從子節點(diǎn)列表中替(tì)換指定的子節(jiē)點
19Save 把XML文件存到(dào)指定節點
20selectNodes 對節點進行指定的匹配,並(bìng)返回匹配節點列表
21selectSingleNode 對(duì)節點進行指(zhǐ)定的匹配,並返回第一個匹配節點
22transformNode 使用指(zhǐ)定的樣式表(biǎo)對節點(diǎn)及其後代進行(háng)轉換
23transformNodeToObject 使用指定的樣(yàng)式表將節點及(jí)其後(hòu)代轉換為對(duì)象
*********************************
DOM(文(wén)檔對(duì)象模型)
DOM(文(wén)檔對象模型)概(gài)念的推出,這個API使(shǐ)HTML如虎添翼,但是有些學DHTML的朋友還是有些困撓,隻是(shì)因(yīn)為目前的手冊的書(shū)寫不太科學,是按字母
來分的(de),不便查(chá)閱.其實DOM中最關鍵(jiàn)是(shì)要(yào)掌握節點與(yǔ)節點之間的關係(between node andnode),想(xiǎng)學習(xí)DHTML中的DOM千萬不要(yào)從頭到尾地看遍所(suǒ)
有的屬性和方法(fǎ),你有(yǒu)三國時(shí)張鬆的"過目不忘"的(de)本領嗎(ma)?沒(méi)有吧,那就聽我分析一下(xià):
其實DOM教給我(wǒ)們的就是一個層次結(jié)構,你(nǐ)可以理(lǐ)解為一個樹形結構(gòu),就像我們(men)的目錄一(yī)樣,一個根(gēn)目(mù)錄,根目錄下有子目錄,子目錄下還有(yǒu)子
目錄……
根節(jiē)點:
DOM把(bǎ)層次(cì)中的每一個對象都(dōu)稱之(zhī)為節點(NODE),以HTML超文本標記語言為例:整個文(wén)檔的一(yī)個根就(jiù)是<html>,在DOM中可以使用
document.documentElement來訪問它,它就(jiù)是整個(gè)節點樹的根(gēn)節(jiē)點(ROOT)
子節點(diǎn):
一般意義上的節點,根節點以下最大子節點就是主文(wén)檔區<body>了,要訪(fǎng)問到(dào)body標簽(qiān),在腳本中應(yīng)該(gāi)寫:
document.body
body區以內所有的文(wén)本及HTML標簽都是(shì)文(wén)檔的節點,分別稱為文本節點、元素節點(或者叫標簽節點),大家知(zhī)道HTML說到(dào)底(dǐ)隻是文本而矣,
不論怎麽樣的網頁必然由這兩(liǎng)個節點組(zǔ)成,也隻能由這兩個節(jiē)點組成
節點之間(jiān)的關係:
節點之間的關係也是(shì)DOM中最重要(yào)的一個關節(jiē),如何正(zhèng)確地(dì)引用到節(jiē)點(diǎn)對(duì)象,一定要清楚節(jiē)點樹(shù)各個節點的相互描述方式,在DHTML裏,
Javascript腳本就用(yòng)了各個節點(diǎn)對象的一整(zhěng)套(tào)方法和屬性去描述另外(wài)的節點對象。
節點的絕對引用:
返回文檔的根(gēn)節點
document.documentElement
返回(huí)當前文檔中被擊活(huó)的標簽(qiān)節點
document.activeElement
返回鼠標移出的源(yuán)節點(diǎn)
event.fromElement
返回鼠標移入的源節點
event.toElement
返(fǎn)回激(jī)活事件(jiàn)的(de)源節(jiē)點
event.srcElement
節點的(de)相對(duì)引用:(設當前(qián)對節點為node)
返回父節(jiē)點
node.parentNode
node.parentElement
返(fǎn)回子(zǐ)節點集合(包含文本節點及標簽(qiān)節(jiē)點)
node.childNodes
返(fǎn)回(huí)子標簽節(jiē)點(diǎn)集合
node.children
返回子文本節點集合(hé)
node.textNodes
返回第一(yī)個子節點
node.firstChild
返(fǎn)回最後一個子節點
node.lastChild
返(fǎn)回(huí)同(tóng)屬(shǔ)下一個節點
node.nextSibling
返回同屬(shǔ)上一個(gè)節點
node.previousSibling
節點的各種操(cāo)作:(設當前的節點為node)
新增(zēng)標(biāo)簽節點句柄:
document.createElement(sNode) //參數為要新添的(de)節點標簽名,例:newnode=document.createElement("div");
1、添加節點:
追加(jiā)子節點(diǎn):
node.appendChild(oNode) //oNode為生新增(zēng)的節點(diǎn)句柄,例:node.appendChild(newnode)
應用標簽節點
node.applyElment(oNode,sWhere)//oNode為生(shēng)新(xīn)增的節(jiē)點句(jù)柄,sWhere有(yǒu)兩個值:outside / inside,加在(zài)當(dāng)前節點外麵還(hái)是裏麵
插入節(jiē)點(diǎn)
inode.insertBefore()
node.insertAdjacentElement()
node.replaceAdjacentText()
2、修改(gǎi)節點:
刪除節點
node.remove()
node.removeChild()
node.removeNode()
替換節點(diǎn)
node.replaceChild()
node.replaceNode()
node.swapNode()
2、複製節點:
返回複製複製節點引用
node.cloneNode(bAll)//bAll為布爾(ěr)值,true / false 是否克隆該節點所有子節點
3、節點信息
是(shì)否(fǒu)包含某節點
node.contains()
是否有子節點
node.hasChildNodes()
*******************************************************
下麵為javascript操作xml
<script language="JavaScript">
<!--
var doc = new ActiveXObject("Msxml2.DOMDocument"); //ie5.5+,CreateObject("Microsoft.XMLDOM")
//加載文檔
//doc.load("b.xml");
//創建文件頭
var p = doc.createProcessingInstruction("xml","version='1.0' encoding='gb2312'");
//添加文件頭
doc.appendChild(p);
//用(yòng)於直(zhí)接加載時獲得根(gēn)接點
//var root = doc.documentElement;
//兩種方式創建根接點
// var root = doc.createElement("students");
var root = doc.createNode(1,"students","");
//創建子(zǐ)接點
var n = doc.createNode(1,"ttyp","");
//指(zhǐ)定子接點文(wén)本
//n.text = " this is a test";
//創(chuàng)建孫(sūn)接(jiē)點
var o = doc.createElement("sex");
o.text = "男"; //指定(dìng)其文本
//創建(jiàn)屬性
var r = doc.createAttribute("id");
r.value="test";
//添加屬性
n.setAttributeNode(r);
//創建第二(èr)個屬性
var r1 = doc.createAttribute("class");
r1.value="tt";
//添加屬性
n.setAttributeNode(r1);
//刪(shān)除第二(èr)個屬性(xìng)
n.removeAttribute("class");
//添加(jiā)孫接點
n.appendChild(o);
//添加文本接點
n.appendChild(doc.createTextNode("this is a text node."));
//添加注(zhù)釋
n.appendChild(doc.createComment("this is a comment\n"));
//添(tiān)加子(zǐ)接點
root.appendChild(n);
//複製接點(diǎn)
var m = n.cloneNode(true);
root.appendChild(m);
//刪(shān)除接點
root.removeChild(root.childNodes(0));
關鍵詞:javascript
閱讀本文(wén)後(hòu)您有(yǒu)什麽(me)感想? 已有(yǒu) 人給出(chū)評(píng)價!
- 0
- 0
- 0
- 0
- 0
- 0